#meaningPrintOutput { display: none; }
.meaningPhysicalOutput {
  color: #172036;
  font-family: "Malgun Gothic", "맑은 고딕", sans-serif;
  font-size: 11pt;
  line-height: 1.25;
  text-align: left;
}
.meaningPhysicalOutput * { box-sizing: border-box; }
.meaningPhysicalPage { width: 100%; background: white; margin: 0; padding: 0; }
.meaningPhysicalPage h2 { font-size: 16pt; line-height: 1.3; margin: 4mm 0 3mm; }
.meaningPhysicalInfo { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, .9fr) minmax(0, 1fr) minmax(0, .9fr); gap: 4mm; font-size: 12pt; }
.meaningPhysicalInfo span { display: block; height: 6mm; border-bottom: 1px solid #b8c0cc; }
.meaningPhysicalColumns { display: grid; grid-template-columns: minmax(0, 1fr); }
.meaningPhysicalColumns.twoColumns { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6mm; }
.meaningPhysicalQuestion { display: grid; grid-template-columns: 32px 133px minmax(0, 285px); gap: 4px; align-items: center; break-inside: avoid; }
.twoColumns .meaningPhysicalQuestion { grid-template-columns: 32px 110px minmax(0, 1fr); }
.meaningPhysicalNumber { color: #65708a; white-space: nowrap; }
.meaningPhysicalWord { overflow-wrap: anywhere; white-space: pre-wrap; }
.meaningPhysicalLine { height: 80%; border-bottom: 1px solid #b8c0cc; }
.meaningPhysicalAnswers h2, .meaningPhysicalAnswers h3 { font-size: 11pt; margin: 0 0 2mm; }
/* Older open tabs still render number/prompt/answer. Keep that layout intact
   when html2canvas reloads this stylesheet while cloning the document. */
.meaningPhysicalAnswer { display: grid; grid-template-columns: 34px 133px minmax(0, 1fr); gap: 3px; align-items: start; font-size: 11pt; line-height: 16pt; break-inside: avoid; }
.meaningPhysicalAnswer.meaningPhysicalAnswerOnly,
.meaningPhysicalAnswer:has(> span:nth-child(2):last-child) { grid-template-columns: 34px minmax(0, 1fr); }
.meaningPhysicalAnswer span { white-space: pre-wrap; overflow-wrap: anywhere; }
.meaningPhysicalAnswer span:first-child { white-space: nowrap; }
.spellingPhysicalPage .meaningPhysicalQuestion { grid-template-columns: 32px 239px minmax(0, 247px); }
.spellingPhysicalPage .twoColumns .meaningPhysicalQuestion { grid-template-columns: 32px 148px minmax(0, 1fr); }
.linePhysicalNotice { font-size:11pt; margin:0 0 2mm; }
.linePhysicalHead, .linePhysicalRow { display:grid; grid-template-columns:266px minmax(0,1fr); gap:8px; }
.linePhysicalHead { height:20pt; font-size:11pt; }
.linePhysicalRow { align-items:center; break-inside:avoid; line-height:18pt; }
.linePhysicalPrompt { display:flex; align-items:center; gap:4px; min-width:0; }
.linePhysicalNumber { width:32px; flex:none; white-space:nowrap; }
.linePhysicalPromptBody { display:flex; align-items:center; gap:4px; min-width:0; }
.linePhysicalPromptBody .linePhysicalText { max-width:163px; }
.linePhysicalText { white-space:pre-wrap; overflow-wrap:anywhere; min-width:0; }
.linePhysicalBox { width:32px; height:22px; flex:none; border:1px solid #b8c0cc; border-radius:4px; }
.linePhysicalBoxes { display:flex; flex-direction:column; gap:2px; flex:none; }
.lineFieldColumns { display:grid; gap:2.5mm; align-items:start; }
.lineFieldBank { min-width:0; }
.lineFieldHeading,.lineFieldEntry { font-size:11pt; line-height:18pt; margin:0; padding:0; white-space:pre-wrap; overflow-wrap:anywhere; }
.lineFieldEntry { break-inside:avoid; white-space:normal; }
.lineFieldQuestion { display:flex; gap:3px; align-items:flex-start; }
.lineFieldText { min-width:0; white-space:pre-wrap; }
.lineFieldQuestion .linePhysicalBox { width:18px; height:20pt; border-radius:2px; }
.easyPhysicalRow { display:grid; grid-template-columns:26px minmax(0,1fr); column-gap:2.5mm; align-items:start; font-size:11pt; line-height:18pt; break-inside:avoid; }
.easyPhysicalHead { font-size:11pt; line-height:18pt; white-space:pre-wrap; overflow-wrap:anywhere; }
.easyPhysicalItems { display:grid; gap:5mm; align-items:start; min-width:0; }
.easyPhysicalCell { min-width:0; white-space:normal; overflow-wrap:anywhere; }
.easyPhysicalCell>span { white-space:pre-wrap; }
.easyPhysicalBox { display:block; width:32px; max-width:100%; height:20pt; border:1px solid #b8c0cc; border-radius:3px; }
.easyPhysicalPage .easyPhysicalOptionsHeading { font-size:11pt; line-height:18pt; height:26pt; margin:0; padding:6pt 0 0; }
.easyPhysicalOptions { display:grid; gap:2.5mm; }
.easyPhysicalOption { font-size:11pt; line-height:18pt; white-space:pre-wrap; overflow-wrap:anywhere; break-inside:avoid; }
.linePhysicalChoice { display:grid; grid-template-columns:32px minmax(0,1fr); gap:4px; align-items:center; }
.linePhysicalLabel { white-space:nowrap; }
.twoColumns .linePhysicalHead, .twoColumns .linePhysicalRow { grid-template-columns:163px minmax(0,1fr); gap:8px; }
.twoColumns .linePhysicalPromptBody .linePhysicalText { max-width:87px; }
.meaningPdfStage { position: fixed; left: -12000px; top: 0; width: 190mm; background: white; }
.meaningPdfProgress { width: min(460px, calc(100vw - 32px)); padding: 24px; border: 1px solid #d6dce6; border-radius: 16px; color: #172036; background: white; font: 15px/1.6 "Malgun Gothic", sans-serif; }
.meaningPdfProgress::backdrop { background: rgb(15 23 42 / 45%); }
.meaningPdfProgress h2 { margin: 0 0 12px; font-size: 20px; }
.meaningPdfProgress p { overflow-wrap: anywhere; }
.meaningPdfProgress progress { width: 100%; accent-color: #315dc8; }
.meaningPdfProgressHelp { color: #526078; }
.meaningPdfProgressActions { display: flex; justify-content: flex-end; align-items: center; gap: 12px; }
.meaningPdfProgressActions a { color: #2454bd; font-weight: 700; }
@media print {
  /* Zero page margins suppress the browser's automatic date/title/URL/page count.
     Keep the writing area inset using padding on every planned page instead.
     https://developer.chrome.com/blog/print-margins */
  @page { size: A4 portrait; margin: 0; }
  body.meaning-print-ready { margin: 0 !important; padding: 0 !important; background: white !important; }
  body.meaning-print-ready > :not(#meaningPrintOutput) { display: none !important; }
  body.meaning-print-ready #meaningPrintOutput { display: block !important; }
  .meaningPhysicalPage { padding: 10mm; break-after: page; page-break-after: always; }
  .meaningPhysicalPage:last-child { break-after: auto; page-break-after: auto; }
}
