.middle-page .select, .middle-page .input, .middle-page .btn, .middle-page .segment, .middle-page .segment__btn { border-radius: 2px; }
.middle-page .page-header { flex-wrap: wrap; }
.middle-filters { display: flex; flex-wrap: wrap; gap: 8px; padding-bottom: 16px; }
.middle-filters .input { flex: 1; min-width: 160px; }
.middle-table { min-width: 700px; }
.middle-table td { vertical-align: top; }
.middle-table th, .middle-table td:nth-child(-n+4) { white-space: nowrap; }
.middle-table td:nth-child(5) { min-width: 250px; }
.middle-title { border: 0; background: none; padding: 0; text-align: left; cursor: pointer; font-weight: 500; }
.middle-title:hover { color: var(--color-primary-dark); text-decoration: underline; }
.middle-exam-label { margin-top: 5px; color: var(--color-text-muted); font-size: 11px; }
.middle-source { color: var(--color-primary-dark); }
.middle-source:hover { text-decoration: underline; }
.middle-page .modal { width: min(920px, 100%); height: calc(100dvh - 48px); border-radius: 0; }
.middle-page .modal.is-paper { width: min(1020px, 100%); }
.middle-page .modal__head, .middle-page .modal__foot { flex: none; }
.middle-page .modal__foot { flex-wrap: wrap; font-size: 12px; }
.middle-page .modal__foot a { text-decoration: underline; text-underline-offset: 3px; }
.middle-viewer-tools { display: flex; flex: none; align-items: center; flex-wrap: wrap; gap: 8px; padding: 10px 20px; border-bottom: 1px solid var(--color-border); }
.middle-page .modal__body { flex: 1; min-height: 0; padding: 24px; background: white; }
.middle-page .modal.is-paper .modal__body { background: var(--color-sidebar-bg); }
.middle-content { max-width: 750px; margin: 0 auto; }
.middle-content, .solution, .sheet { overflow-wrap: anywhere; }
.middle-unavailable { margin: 0 0 18px; padding: 12px 16px; border: 1px solid var(--color-border); font-size: 13px; line-height: 1.7; }
.middle-unavailable summary { cursor: pointer; }
.middle-unavailable p { margin: 8px 0; }
.middle-blank { display: inline-block; max-width: 100%; vertical-align: baseline; white-space: pre-wrap; }
.middle-source-transcript { margin: 16px 0; padding: 16px; border: 1px solid var(--color-border); line-height: 1.8; }
.middle-content .passage { max-width: none; }
.middle-paragraph { margin: 0 0 18px; line-height: 1.95; white-space: normal; }
.middle-content .question { margin-top: 28px; }
.middle-content .question__stem > div { min-width: 0; }
.middle-content .choices { list-style: none; }
.middle-content .choice { align-items: flex-start; }
.middle-content table, .solution table, .sheet table { border-collapse: collapse; width: 100%; margin: 8px 0; font-size: .95em; }
.middle-content td, .middle-content th, .sheet td, .sheet th { border: 1px solid var(--color-border-strong); padding: 6px 9px; text-align: center; }
.middle-content .question__extra { white-space: normal; }
.middle-figure { margin: 12px auto; text-align: center; }
.middle-figure img { display: inline-block; width: auto; max-width: 100%; max-height: 460px; height: auto; object-fit: contain; }
.choice__text .middle-figure { margin: 4px 0; text-align: left; }
.middle-content .choice__text { min-width: 0; }
.middle-response-space { margin: 12px 0 14px 24px; border-bottom: 1px solid var(--color-border-strong); min-height: 36px; max-width: 280px; }
.middle-short-answer { display: none; margin: 8px 0; }
.show-answers .middle-short-answer { display: block; }
.middle-transcript { margin: 12px 0; border: 1px solid var(--color-border); padding: 12px; }
.middle-transcript summary { cursor: pointer; font-weight: 500; }
.middle-transcript > div { margin-top: 12px; line-height: 1.8; }
.middle-audio-player { display: flex; flex: none; align-items: center; gap: 16px; padding: 8px 20px; border-bottom: 1px solid var(--color-border); }
.middle-audio-player[hidden] { display: none; }
.middle-audio-player audio { height: 36px; width: min(520px, 100%); }
.middle-audio-player span { white-space: nowrap; }
.middle-file-message { margin: 24px auto; max-width: 640px; line-height: 1.8; }
.middle-source-links { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
.middle-paper-measure { position: absolute; visibility: hidden; width: 320px; pointer-events: none; }
.middle-page .sheet__head { gap: 16px; }
.middle-page .sheet__head span { text-align: right; font-size: 8pt; }
.middle-page .sheet__col { overflow: visible; }
.middle-page .sheet .middle-paper-paragraph { margin-bottom: 8pt; text-indent: 1em; }
.middle-page .sheet .middle-paper-paragraph.cont { text-indent: 0; }
.middle-page .sheet .middle-question-gap { height: 12pt; }
.middle-page .sheet .middle-figure img { max-height: 180mm; }
.middle-page .sheet .op img { max-height: 45mm; }
.middle-page .sheet td, .middle-page .sheet th { padding: 2pt 4pt; }
.middle-page .sheet .st { margin-top: 8pt; }
.middle-page .solution__item p { line-height: 1.9; }
@media (max-width: 900px) {
  .middle-page .modal { width: 100%; height: 100dvh; max-height: 100dvh; }
  .middle-page .modal__body { padding: 18px 14px; }
  .middle-viewer-tools { padding: 8px 12px; }
  .middle-filters .select { flex: 1; min-width: 120px; }
  .middle-audio-player { padding: 8px 12px; gap: 8px; }
  .middle-content .passage { font-size: 15px; }
  .middle-content .choices, .middle-content .question__extra { margin-left: 0; }
  .middle-page .sheets { align-items: flex-start; }
}
@media (max-width: 900px) {
  .middle-exam-label { font-size: 12.5px; }
  .middle-unavailable { font-size: 14px; }
  .middle-page .modal__foot { font-size: 13.5px; }
  .middle-page .modal__foot a { order: 5; flex: 1 0 100%; padding: 10px 0; text-align: center; }
  .middle-viewer-tools .segment { display: flex; flex: 1 1 auto; }
  .middle-viewer-tools .segment__btn { flex: 1; }
  .middle-audio-player { flex-wrap: wrap; }
  .middle-audio-player audio { width: 100%; height: 40px; }
  .middle-response-space { margin-left: 0; max-width: none; }
}
@media (max-width: 640px) {
  .middle-table { min-width: 0; }
  .middle-table td:nth-child(5) { order: 5; flex: 1 0 100%; min-width: 0; }
  .middle-table td:nth-child(6) { order: 6; flex: 1 0 100%; font-size: 12.5px; }
  .middle-table td:nth-child(4):not(:empty)::after { content: "번"; }
  .middle-title { display: block; width: 100%; padding: 8px 0 4px; font-size: 15.5px; line-height: 1.5; color: var(--color-text-strong); }
  .middle-source { display: inline-block; padding: 8px 0; }
}
@media print {
  body.middle-page { height: auto; overflow: visible !important; }
  .middle-page .modal-backdrop:not(.is-open) { display: none; }
  .middle-page .modal-backdrop.is-open { display: block; position: static; }
  .middle-page .modal { display: block; width: auto; height: auto; max-height: none; overflow: visible; }
  .middle-page .modal__body { display: block; padding: 0; height: auto; overflow: visible; background: white; }
  .middle-viewer-tools, .middle-audio-player, .middle-paper-measure { display: none !important; }
  .middle-page .sheets { padding: 0; gap: 0; }
  .middle-page .sheet { border: 0; }
}
