.kdl-written-summary-body .kdl-theory-shell {
  padding-top: 22px;
}

.kdl-written-summary-body .kdl-written-summary-tabs {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.kdl-written-summary-body .kdl-theory-stage {
  min-height: 0;
}

.kdl-written-summary-body .kdl-theory-card {
  min-height: 0;
  padding: clamp(24px, 4vw, 38px);
}

.kdl-written-summary-body .kdl-theory-card-content {
  display: grid;
  gap: 12px;
}

.kdl-written-summary-body .kdl-theory-topic-group {
  min-width: 0;
  padding: 16px 18px;
  border: 1px solid #eee7d5;
  border-radius: 15px;
  background: #fbfaf6;
}

.kdl-written-summary-body .kdl-theory-topic-group.is-note {
  border-color: #eadfab;
  background: #fffbed;
}

.kdl-written-summary-body .kdl-theory-topic-group.is-warning {
  border-color: #edcfc6;
  background: #fff6f3;
}

.kdl-written-summary-body .kdl-theory-topic-group ul,
.kdl-written-summary-body .kdl-theory-topic-group ol {
  margin: 0;
  padding-left: 23px;
}

.kdl-written-summary-body .kdl-theory-card-subheading {
  margin: 0 0 8px;
  color: #5f4a08;
  font-size: 18px;
}

.kdl-written-summary-body .kdl-theory-card-content li {
  margin: 5px 0;
  font-size: 18px;
  line-height: 1.65;
  text-align: left;
  word-break: keep-all;
  overflow-wrap: break-word;
}

.kdl-card-quiz {
  margin-top: 28px;
  padding: 24px;
  border: 2px solid #ead895;
  border-radius: 20px;
  background: #fffdf5;
}

.kdl-card-quiz-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 18px;
}

.kdl-card-quiz-head span {
  display: block;
  margin-bottom: 4px;
  color: #7b5e00;
  font-size: 13px;
  font-weight: 900;
}

.kdl-card-quiz-head h3 {
  margin: 0;
  color: #2b281f;
  font-size: 23px;
  line-height: 1.35;
}

.kdl-card-quiz-head > strong {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 34px;
  padding: 6px 12px;
  border-radius: 999px;
  background: #e8e2d2;
  color: #5f5849;
  font-size: 14px;
  white-space: nowrap;
}

.kdl-card-quiz-head > strong.is-passed {
  background: #dcefdc;
  color: #215d28;
}

.kdl-quiz-block {
  min-width: 0;
  margin: 0 0 16px;
  padding: 18px;
  border: 1px solid #e4dcc5;
  border-radius: 16px;
  background: #fff;
}

.kdl-quiz-block legend {
  width: 100%;
  padding: 0;
  color: #2f2b22;
}

.kdl-quiz-block legend > span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 58px;
  min-height: 30px;
  margin-right: 8px;
  padding: 4px 9px;
  border-radius: 999px;
  background: #efb701;
  color: #302600;
  font-size: 13px;
  font-weight: 900;
  vertical-align: middle;
}

.kdl-quiz-block legend > strong {
  display: inline;
  font-size: 18px;
  line-height: 1.6;
  word-break: keep-all;
}

.kdl-quiz-options {
  display: grid;
  gap: 9px;
  margin-top: 15px;
}

.kdl-quiz-options-ox {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.kdl-quiz-option {
  position: relative;
  display: flex;
  align-items: center;
  gap: 11px;
  min-height: 48px;
  padding: 11px 13px;
  border: 1px solid #ddd6c3;
  border-radius: 12px;
  background: #fff;
  color: #3f3a2f;
  cursor: pointer;
  transition: border-color .15s ease, background .15s ease, transform .15s ease;
}

.kdl-quiz-option:hover {
  border-color: #c6a82f;
  background: #fffaf0;
}

.kdl-quiz-option:has(input:checked) {
  border-color: #b38b00;
  background: #fff3bd;
  box-shadow: 0 0 0 2px rgba(239, 183, 1, .16);
}

.kdl-quiz-option:has(input:disabled) {
  cursor: default;
}

.kdl-quiz-option input {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  opacity: 0;
  pointer-events: none;
}

.kdl-quiz-option-marker {
  display: inline-flex;
  flex: 0 0 30px;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  border: 2px solid #cfc6ad;
  border-radius: 50%;
  color: #6b5a1a;
  font-size: 15px;
  font-weight: 900;
}

.kdl-quiz-option input:checked + .kdl-quiz-option-marker {
  border-color: #7b5e00;
  background: #7b5e00;
  color: #fff;
}

.kdl-quiz-option-text {
  min-width: 0;
  font-size: 16px;
  line-height: 1.55;
  word-break: keep-all;
}

.kdl-quiz-feedback {
  margin: 12px 0 0;
  padding: 11px 13px;
  border-radius: 11px;
  font-size: 15px;
  line-height: 1.55;
  white-space: pre-line;
  word-break: keep-all;
}

.kdl-quiz-feedback.is-correct {
  background: #e8f5e8;
  color: #245d2a;
}

.kdl-quiz-feedback.is-wrong {
  background: #fff0ec;
  color: #8a3427;
}

.kdl-quiz-submit {
  width: 100%;
  min-height: 52px;
  border: 0;
  border-radius: 14px;
  background: #111;
  color: #fff;
  font: inherit;
  font-size: 17px;
  font-weight: 900;
  cursor: pointer;
}

.kdl-quiz-submit:disabled {
  background: #397543;
  cursor: default;
}

.kdl-quiz-gate {
  margin: 12px 0 0;
  color: #6a6253;
  font-size: 14px;
  line-height: 1.55;
  text-align: center;
}

.kdl-quiz-gate.is-open {
  color: #26622e;
  font-weight: 800;
}

.kdl-quiz-gate.is-warning {
  color: #9a3b2c;
  font-weight: 800;
}

.kdl-written-summary-body .kdl-theory-controls #theoryNextButton:disabled {
  background: #d8d0b5;
  color: #6e6655;
  opacity: 1;
}

@media (max-width: 980px) {
  .kdl-written-summary-body .kdl-written-summary-tabs {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 700px) {
  .kdl-written-summary-body .kdl-written-summary-tabs {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .kdl-card-quiz {
    padding: 18px;
  }

  .kdl-quiz-block legend > strong {
    display: block;
    margin-top: 8px;
    font-size: 17px;
  }
}

@media (max-width: 520px) {
  .kdl-written-summary-body .kdl-written-summary-tabs {
    grid-template-columns: 1fr;
  }

  .kdl-written-summary-body .kdl-theory-topic-group {
    padding: 13px 14px;
  }

  .kdl-written-summary-body .kdl-theory-card-content li {
    font-size: 16px;
    line-height: 1.6;
  }

  .kdl-card-quiz {
    margin-top: 22px;
    padding: 15px;
    border-radius: 17px;
  }

  .kdl-card-quiz-head {
    align-items: flex-start;
  }

  .kdl-card-quiz-head h3 {
    font-size: 20px;
  }

  .kdl-quiz-block {
    padding: 15px;
  }

  .kdl-quiz-options-ox {
    grid-template-columns: 1fr 1fr;
  }

  .kdl-quiz-option {
    padding: 10px 11px;
  }

  .kdl-quiz-option-text {
    font-size: 15px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .kdl-quiz-option {
    transition: none;
  }
}

/* v2: 문제 유형별 개별 채점 */
.kdl-card-quiz-head > strong.is-checked {
  background: #fff0b8;
  color: #6a5100;
}

.kdl-quiz-type-group {
  margin-top: 18px;
  padding: 20px;
  border: 1px solid #e8dfc5;
  border-radius: 18px;
  background: #fffaf0;
}

.kdl-quiz-type-group + .kdl-quiz-type-group {
  margin-top: 24px;
  background: #f7f9ff;
  border-color: #dce3f1;
}

.kdl-quiz-type-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 16px;
}

.kdl-quiz-type-head span {
  display: block;
  margin-bottom: 4px;
  color: #7b5e00;
  font-size: 12px;
  font-weight: 900;
}

.kdl-quiz-type-group + .kdl-quiz-type-group .kdl-quiz-type-head span {
  color: #405b8a;
}

.kdl-quiz-type-head h4 {
  margin: 0;
  color: #2b281f;
  font-size: 21px;
  line-height: 1.35;
}

.kdl-quiz-type-head > strong {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 30px;
  padding: 5px 10px;
  border-radius: 999px;
  background: #f1e5aa;
  color: #5e4a06;
  font-size: 13px;
  white-space: nowrap;
}

.kdl-quiz-type-group + .kdl-quiz-type-group .kdl-quiz-type-head > strong {
  background: #dfe7f7;
  color: #334f7c;
}

.kdl-quiz-question-list {
  display: grid;
  gap: 14px;
}

.kdl-quiz-question-list .kdl-quiz-block {
  margin: 0;
}

.kdl-quiz-type-group .kdl-quiz-submit {
  margin-top: 16px;
}

.kdl-quiz-submit.is-multiple {
  background: #263b62;
}

.kdl-quiz-group-summary {
  margin: 12px 0 0;
  padding: 11px 13px;
  border-radius: 11px;
  background: #fff0d2;
  color: #684d00;
  font-size: 15px;
  font-weight: 800;
  line-height: 1.5;
  text-align: center;
}

.kdl-quiz-group-summary.is-perfect {
  background: #e4f4e5;
  color: #245d2a;
}

@media (max-width: 700px) {
  .kdl-quiz-type-group {
    padding: 16px;
  }
}

@media (max-width: 520px) {
  .kdl-quiz-type-head {
    align-items: flex-start;
  }

  .kdl-quiz-type-head h4 {
    font-size: 19px;
  }

  .kdl-quiz-type-head > strong {
    font-size: 12px;
  }
}

/* v3: 한글 음절 모양에 따른 크기 차이를 줄이는 요약 페이지 전용 글꼴 고정 */
.kdl-written-summary-body,
.kdl-written-summary-body button,
.kdl-written-summary-body input,
.kdl-written-summary-body select,
.kdl-written-summary-body textarea {
  font-family: "Noto Sans KR", "Apple SD Gothic Neo", "Malgun Gothic", "맑은 고딕", sans-serif;
  font-size-adjust: none;
  font-synthesis: none;
  font-optical-sizing: none;
}

.kdl-written-summary-body .kdl-theory-card h2,
.kdl-written-summary-body .kdl-theory-card-subheading,
.kdl-written-summary-body .kdl-theory-card-content,
.kdl-written-summary-body .kdl-theory-card-content li,
.kdl-written-summary-body .kdl-quiz-block legend > strong,
.kdl-written-summary-body .kdl-quiz-option-text,
.kdl-written-summary-body .kdl-quiz-feedback {
  letter-spacing: 0;
  font-kerning: none;
  font-variant-ligatures: none;
  text-rendering: geometricPrecision;
}

.kdl-written-summary-body .kdl-theory-card-content,
.kdl-written-summary-body .kdl-theory-card-content li {
  font-size: 18px;
  font-weight: 400;
  line-height: 1.7;
}

.kdl-written-summary-body .kdl-theory-card-subheading {
  font-size: 18px;
  font-weight: 700;
  line-height: 1.5;
}

@media (max-width: 520px) {
  .kdl-written-summary-body .kdl-theory-card-content,
  .kdl-written-summary-body .kdl-theory-card-content li {
    font-size: 16px;
    line-height: 1.68;
  }

  .kdl-written-summary-body .kdl-theory-card-subheading {
    font-size: 17px;
  }
}

/* v4: OX와 5지선다를 한 문제씩 표시하고 함께 확인 */
.kdl-quiz-pair-controls {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-top: 20px;
}

.kdl-quiz-pair-controls button {
  min-height: 50px;
  padding: 11px 16px;
  border: 0;
  border-radius: 14px;
  background: #263b62;
  color: #fff;
  font: inherit;
  font-size: 16px;
  font-weight: 900;
  cursor: pointer;
}

.kdl-quiz-pair-controls button:first-child {
  background: #6e6552;
}

.kdl-quiz-pair-controls button:disabled {
  background: #d8d0b5;
  color: #6e6655;
  cursor: default;
}

.kdl-written-summary-body .kdl-quiz-type-group .kdl-quiz-block {
  margin-bottom: 0;
}

.kdl-written-summary-body .kdl-quiz-feedback[hidden] {
  display: none;
}

@media (max-width: 520px) {
  .kdl-quiz-pair-controls {
    gap: 9px;
  }

  .kdl-quiz-pair-controls button {
    min-height: 47px;
    padding: 10px 12px;
    font-size: 15px;
  }
}

.kdl-quiz-type-check {
  width: 100%;
  min-height: 50px;
  margin-top: 4px;
  border: 0;
  border-radius: 13px;
  background: #111;
  color: #fff;
  font: inherit;
  font-size: 16px;
  font-weight: 900;
  cursor: pointer;
  transition: background .15s ease, transform .15s ease, opacity .15s ease;
}

.kdl-quiz-type-check:hover:not(:disabled) {
  transform: translateY(-1px);
  background: #2e2a21;
}

.kdl-quiz-type-check:disabled {
  background: #d5d0c3;
  color: #777064;
  cursor: not-allowed;
  opacity: .8;
}

.kdl-quiz-type-check.is-checked:not(:disabled) {
  background: #397543;
}

/* v6: OX와 5지선다의 문제 이동을 각각 분리 */
.kdl-quiz-type-controls {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin-top: 10px;
}

.kdl-quiz-type-controls button {
  min-height: 48px;
  padding: 10px 13px;
  border: 0;
  border-radius: 13px;
  background: #263b62;
  color: #fff;
  font: inherit;
  font-size: 15px;
  font-weight: 900;
  cursor: pointer;
}

.kdl-quiz-type-controls button:first-child {
  background: #6e6552;
}

.kdl-quiz-type-controls button:disabled {
  background: #d8d0b5;
  color: #6e6655;
  cursor: default;
}

.kdl-quiz-type-group > .kdl-quiz-gate {
  margin-top: 10px;
}

@media (max-width: 520px) {
  .kdl-quiz-type-controls {
    gap: 8px;
  }

  .kdl-quiz-type-controls button {
    min-height: 46px;
    padding: 9px 8px;
    font-size: 14px;
  }
}

/* v7: 선택 즉시 채점, 문제 본문 박스화, 카드 이동 버튼 상·하단 배치 */
.kdl-written-summary-body .kdl-card-nav {
  margin-top: 24px;
}

.kdl-written-summary-body .kdl-card-nav-top {
  margin-bottom: 38px;
}

.kdl-written-summary-body .kdl-card-nav-bottom {
  margin-top: 30px;
}

.kdl-written-summary-body .kdl-card-nav [data-card-nav="next"] {
  background: var(--theory-gold);
  color: #302600;
}

.kdl-written-summary-body .kdl-card-quiz {
  margin-top: 0;
  padding: clamp(24px, 4vw, 34px);
  border-width: 2px;
}

.kdl-written-summary-body .kdl-quiz-type-group {
  padding: clamp(22px, 3vw, 30px);
}

.kdl-written-summary-body .kdl-quiz-type-head h4 {
  font-size: 24px;
}

.kdl-written-summary-body .kdl-quiz-block {
  margin: 0;
  padding: clamp(22px, 3vw, 30px);
  border: 2px solid #ddd3b7;
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 8px 22px rgba(68, 55, 18, .06);
}

.kdl-written-summary-body .kdl-quiz-question-head {
  display: grid;
  gap: 12px;
  margin-bottom: 22px;
}


.kdl-written-summary-body .kdl-quiz-question-text {
  margin: 0;
  color: #252119;
  font-size: 23px;
  font-weight: 800;
  line-height: 1.62;
  letter-spacing: 0;
  word-break: keep-all;
  overflow-wrap: break-word;
}

.kdl-written-summary-body .kdl-quiz-options {
  gap: 12px;
  margin-top: 0;
}

.kdl-written-summary-body .kdl-quiz-option {
  min-height: 58px;
  padding: 14px 16px;
}

.kdl-written-summary-body .kdl-quiz-option-marker {
  flex-basis: 36px;
  width: 36px;
  height: 36px;
  font-size: 17px;
}

.kdl-written-summary-body .kdl-quiz-option-text {
  font-size: 19px;
  line-height: 1.6;
}

.kdl-written-summary-body .kdl-quiz-feedback {
  margin-top: 18px;
  padding: 15px 17px;
  font-size: 17px;
  line-height: 1.65;
}

.kdl-written-summary-body .kdl-quiz-type-controls {
  margin-top: 14px;
}

.kdl-written-summary-body .kdl-quiz-gate {
  font-size: 15px;
}

@media (max-width: 700px) {
  .kdl-written-summary-body .kdl-card-nav-top {
    margin-bottom: 30px;
  }

  .kdl-written-summary-body .kdl-quiz-question-text {
    font-size: 21px;
  }

  .kdl-written-summary-body .kdl-quiz-option-text {
    font-size: 18px;
  }
}

@media (max-width: 520px) {
  .kdl-written-summary-body .kdl-card-nav {
    gap: 9px;
  }

  .kdl-written-summary-body .kdl-card-nav-top {
    margin-top: 20px;
    margin-bottom: 26px;
  }

  .kdl-written-summary-body .kdl-card-nav-bottom {
    margin-top: 24px;
  }

  .kdl-written-summary-body .kdl-card-quiz {
    padding: 17px;
  }

  .kdl-written-summary-body .kdl-quiz-type-group {
    padding: 17px;
  }

  .kdl-written-summary-body .kdl-quiz-type-head h4 {
    font-size: 21px;
  }

  .kdl-written-summary-body .kdl-quiz-block {
    padding: 18px 16px;
  }

  .kdl-written-summary-body .kdl-quiz-question-head {
    gap: 10px;
    margin-bottom: 17px;
  }

  .kdl-written-summary-body .kdl-quiz-question-text {
    font-size: 19px;
    line-height: 1.58;
  }

  .kdl-written-summary-body .kdl-quiz-option {
    min-height: 54px;
    padding: 12px 13px;
  }

  .kdl-written-summary-body .kdl-quiz-option-marker {
    flex-basis: 33px;
    width: 33px;
    height: 33px;
    font-size: 16px;
  }

  .kdl-written-summary-body .kdl-quiz-option-text {
    font-size: 17px;
  }

  .kdl-written-summary-body .kdl-quiz-feedback {
    padding: 13px 14px;
    font-size: 16px;
  }
}

/* 필기 이론 전체: 한 카드 한 주제, 항목별 목록 */
.kdl-written-complete-body .kdl-theory-card-content {
  gap: 16px;
}

.kdl-written-complete-body .kdl-theory-topic-group {
  padding: 18px 20px;
}

.kdl-written-complete-body .kdl-theory-topic-group ul,
.kdl-written-complete-body .kdl-theory-topic-group ol {
  display: grid;
  gap: 10px;
  margin: 0;
  padding-left: 0;
  list-style: none;
}

.kdl-written-complete-body .kdl-theory-card-content li {
  position: relative;
  margin: 0;
  padding-left: 24px;
}

.kdl-written-complete-body .kdl-theory-card-content li::before {
  content: "";
  position: absolute;
  top: 1em;
  left: 2px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #c99b00;
  transform: translateY(-50%);
}

.kdl-written-complete-body .kdl-theory-topic-group.is-note li::before {
  background: #8d6b00;
}

.kdl-written-complete-body .kdl-theory-topic-group.is-warning li::before {
  background: #b04b34;
}

.kdl-written-complete-body .kdl-theory-inline-highlight {
  padding: 0;
  color: inherit;
  font-weight: 900;
  background: none;
  box-shadow: none;
}


/* 필기 이론 전체: 형광펜 효과 완전 제거, 핵심어는 굵기만 적용 */
html body.kdl-written-complete-body .kdl-theory-card-content .kdl-theory-inline-highlight,
html body.kdl-written-complete-body .kdl-theory-card-content strong.kdl-theory-inline-highlight,
html body.kdl-written-complete-body .kdl-theory-card-content mark.kdl-theory-inline-highlight {
  display: inline !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  color: inherit !important;
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
  box-shadow: none !important;
  text-shadow: none !important;
  text-decoration: none !important;
  font-weight: 800 !important;
}
html body.kdl-written-complete-body .kdl-theory-card-content .kdl-theory-inline-highlight::before,
html body.kdl-written-complete-body .kdl-theory-card-content .kdl-theory-inline-highlight::after {
  content: none !important;
  display: none !important;
  background: none !important;
  box-shadow: none !important;
}

/* Fresh complete-theory cards: bold text only, never marker backgrounds. */
.kdl-written-complete-body .kdl-summary-key,
.kdl-written-complete-body mark,
.kdl-written-complete-body strong[data-theory-highlight] {
  background: transparent !important;
  background-image: none !important;
  box-shadow: none !important;
  color: inherit !important;
  font-weight: 800 !important;
  padding: 0 !important;
}


/* Curated topic-card layout: one topic, one explanatory paragraph, grouped details. */
.kdl-written-complete-body .kdl-theory-card-summary {
  margin: 0 0 1.4rem;
  padding: 1.15rem 1.25rem;
  border: 1px solid rgba(25, 63, 92, 0.16);
  border-radius: 14px;
  background: #f7f9fb;
  color: #17212b;
  font-size: 1.08rem;
  line-height: 1.85;
  word-break: keep-all;
}
.kdl-written-complete-body .kdl-theory-topic-group {
  margin-top: 1rem;
}
.kdl-written-complete-body .kdl-theory-topic-group + .kdl-theory-topic-group {
  margin-top: 1.05rem;
}
.kdl-written-complete-body .kdl-theory-inline-highlight,
.kdl-written-complete-body mark,
.kdl-written-complete-body strong mark,
.kdl-written-complete-body .kdl-theory-card-summary mark {
  background: transparent !important;
  background-image: none !important;
  box-shadow: none !important;
  color: inherit !important;
  font-weight: 800 !important;
  padding: 0 !important;
}
.kdl-written-complete-body .kdl-theory-inline-highlight::before,
.kdl-written-complete-body .kdl-theory-inline-highlight::after {
  display: none !important;
  content: none !important;
}

/* v15: 필기 이론 요약·전체 공통 문제 UI — 유형별 박스 하나, 배지 제거, OX 전체 폭 */
.kdl-written-summary-body .kdl-card-quiz {
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.kdl-written-summary-body .kdl-quiz-type-group {
  border-width: 1px;
  box-shadow: none;
}

.kdl-written-summary-body .kdl-quiz-block {
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.kdl-written-summary-body .kdl-quiz-question-head {
  gap: 0;
}

.kdl-written-summary-body .kdl-quiz-options-ox {
  width: 100%;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  justify-content: stretch;
  gap: 16px;
}

.kdl-written-summary-body .kdl-quiz-options-ox .kdl-quiz-option {
  width: 100%;
  justify-content: center;
  min-height: 62px;
  padding: 9px 16px;
  text-align: center;
}

.kdl-written-summary-body .kdl-quiz-options-ox .kdl-quiz-option-marker {
  flex-basis: 44px;
  width: 44px;
  height: 44px;
  font-size: 22px;
}

@media (max-width: 520px) {
  .kdl-written-summary-body .kdl-card-quiz,
  .kdl-written-summary-body .kdl-quiz-block {
    padding: 0 !important;
  }

  .kdl-written-summary-body .kdl-quiz-options-ox {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
  }
}

/* v16: OX 선택 글자를 원형으로 감싸지 않음 */
.kdl-written-summary-body .kdl-quiz-options-ox .kdl-quiz-option-marker,
.kdl-written-summary-body .kdl-quiz-options-ox .kdl-quiz-option input:checked + .kdl-quiz-option-marker {
  flex: 0 0 auto;
  width: auto;
  height: auto;
  min-width: 0;
  padding: 0;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: #3f3a2f;
  font-size: 24px;
  line-height: 1;
}

.kdl-written-summary-body .kdl-quiz-options-ox .kdl-quiz-option:has(input:checked) .kdl-quiz-option-marker {
  color: #7b5e00;
}

/* v18: 이론 설명은 크게, 확인 문제는 한 단계 작게 */
.kdl-written-summary-body .kdl-theory-card-content,
.kdl-written-summary-body .kdl-theory-card-content li {
  font-size: 20px;
  line-height: 1.78;
}

.kdl-written-summary-body .kdl-theory-card-subheading {
  font-size: 20px;
  line-height: 1.55;
}

.kdl-written-complete-body .kdl-theory-card-summary {
  font-size: 20px;
  line-height: 1.9;
}

.kdl-written-summary-body .kdl-quiz-type-head h4 {
  font-size: 18px;
}

.kdl-written-summary-body .kdl-quiz-question-text {
  font-size: 18px;
  line-height: 1.55;
}

.kdl-written-summary-body .kdl-quiz-option-text {
  font-size: 16px;
  line-height: 1.5;
}

.kdl-written-summary-body .kdl-quiz-options-ox .kdl-quiz-option-marker,
.kdl-written-summary-body .kdl-quiz-options-ox .kdl-quiz-option input:checked + .kdl-quiz-option-marker {
  font-size: 20px;
}

.kdl-written-summary-body .kdl-quiz-feedback {
  font-size: 15px;
  line-height: 1.55;
}

.kdl-written-summary-body .kdl-quiz-type-controls button,
.kdl-written-summary-body .kdl-quiz-gate {
  font-size: 14px;
}

@media (max-width: 520px) {
  .kdl-written-summary-body .kdl-theory-card-content,
  .kdl-written-summary-body .kdl-theory-card-content li {
    font-size: 18px;
    line-height: 1.74;
  }

  .kdl-written-summary-body .kdl-theory-card-subheading,
  .kdl-written-complete-body .kdl-theory-card-summary {
    font-size: 18px;
  }

  .kdl-written-summary-body .kdl-quiz-type-head h4,
  .kdl-written-summary-body .kdl-quiz-question-text {
    font-size: 17px;
  }

  .kdl-written-summary-body .kdl-quiz-option-text {
    font-size: 15px;
  }

  .kdl-written-summary-body .kdl-quiz-options-ox .kdl-quiz-option-marker,
  .kdl-written-summary-body .kdl-quiz-options-ox .kdl-quiz-option input:checked + .kdl-quiz-option-marker {
    font-size: 18px;
  }

  .kdl-written-summary-body .kdl-quiz-feedback {
    font-size: 14px;
  }
}

/* v20: 문제 글자를 살짝 키우고 설명과의 위계 유지 */
.kdl-written-summary-body .kdl-quiz-type-head h4,
.kdl-written-summary-body .kdl-quiz-question-text {
  font-size: 19px;
}

.kdl-written-summary-body .kdl-quiz-option-text {
  font-size: 17px;
}

.kdl-written-summary-body .kdl-quiz-options-ox .kdl-quiz-option-marker,
.kdl-written-summary-body .kdl-quiz-options-ox .kdl-quiz-option input:checked + .kdl-quiz-option-marker {
  font-size: 21px;
}

.kdl-written-summary-body .kdl-quiz-feedback {
  font-size: 16px;
}

.kdl-written-summary-body .kdl-quiz-type-controls button,
.kdl-written-summary-body .kdl-quiz-gate {
  font-size: 15px;
}

@media (max-width: 520px) {
  .kdl-written-summary-body .kdl-quiz-type-head h4,
  .kdl-written-summary-body .kdl-quiz-question-text {
    font-size: 18px;
  }

  .kdl-written-summary-body .kdl-quiz-option-text {
    font-size: 16px;
  }

  .kdl-written-summary-body .kdl-quiz-options-ox .kdl-quiz-option-marker,
  .kdl-written-summary-body .kdl-quiz-options-ox .kdl-quiz-option input:checked + .kdl-quiz-option-marker {
    font-size: 19px;
  }

  .kdl-written-summary-body .kdl-quiz-feedback {
    font-size: 15px;
  }
}

/* v21: 문제 문장 +2px, 5지선다 선택지 +3px */
.kdl-written-summary-body .kdl-quiz-type-head h4,
.kdl-written-summary-body .kdl-quiz-question-text {
  font-size: 21px;
}

.kdl-written-summary-body .kdl-quiz-options:not(.kdl-quiz-options-ox) .kdl-quiz-option-text {
  font-size: 20px;
}

@media (max-width: 520px) {
  .kdl-written-summary-body .kdl-quiz-type-head h4,
  .kdl-written-summary-body .kdl-quiz-question-text {
    font-size: 20px;
  }

  .kdl-written-summary-body .kdl-quiz-options:not(.kdl-quiz-options-ox) .kdl-quiz-option-text {
    font-size: 19px;
  }
}

/* 필기 이론 페이지: 과목 탭은 고정하지 않고 카드 이동 시에만 해당 위치로 스크롤 */
.kdl-written-summary-body .kdl-theory-tabs,
.kdl-written-complete-body .kdl-theory-tabs {
  position: relative;
  top: auto;
  z-index: auto;
}

/* 로그인 사용자 카드 본문 드래그 표시 */
.kdl-written-summary-body .kdl-theory-card-content .kdl-user-text-highlight {
  color: #d60000 !important;
  font-weight: 800 !important;
  text-decoration: none;
}

.kdl-written-summary-body .kdl-theory-card-content {
  cursor: text;
}

/* 필기 이론 전체: 왼쪽 문제 번호 바로가기 */
.kdl-theory-complete-layout {
  display: block;
  width: 100%;
}

.kdl-theory-number-nav {
  display: none;
}

@media (min-width: 1360px) {
  .kdl-theory-complete-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 980px) minmax(0, 1fr);
    align-items: start;
    width: 100%;
  }

  .kdl-theory-complete-layout > .kdl-theory-shell {
    grid-column: 2;
    grid-row: 1;
    width: 100%;
    max-width: none;
    margin-right: 0;
    margin-left: 0;
  }

  .kdl-theory-number-nav {
    grid-column: 1;
    grid-row: 1;
    align-self: start;
    justify-self: center;
    z-index: 3;
    display: block;
    box-sizing: border-box;
    width: min(300px, calc(100% - 30px));
    height: auto;
    margin: 18px auto 0;
    padding: 0;
    overflow: visible;
    border: 0;
    background: transparent;
    box-shadow: none;
  }
}

.kdl-theory-number-nav-panel {
  display: flex;
  flex-direction: column;
  box-sizing: border-box;
  width: 100%;
  height: auto;
  min-height: 0;
  padding: 14px 12px 12px;
  overflow: visible;
  border: 1px solid rgba(17, 24, 39, .14);
  border-radius: 16px;
  background: #fffdf7;
  box-shadow: 0 14px 34px rgba(45, 38, 20, .10);
}

.kdl-theory-number-nav-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.kdl-theory-number-nav-head strong {
  color: #2f2a1e;
  font-size: 16px;
  line-height: 1.3;
}

.kdl-theory-number-nav-head span {
  flex: 0 0 auto;
  padding: 4px 8px;
  border-radius: 999px;
  background: #f0e7c7;
  color: #66520e;
  font-size: 11px;
  font-weight: 900;
}

.kdl-theory-number-nav-panel > p {
  margin: 7px 0 11px;
  color: #706a5d;
  font-size: 12px;
  font-weight: 800;
  line-height: 1.45;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.kdl-theory-number-nav-list {
  display: grid;
  grid-template-columns: repeat(5, 44px);
  justify-content: center;
  align-content: start;
  gap: 7px;
  min-height: 0;
  padding: 1px 0 7px;
  overflow: visible;
}

.kdl-theory-number-nav-list button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  min-width: 44px;
  padding: 0;
  border: 1px solid #ddd4b6;
  border-radius: 9px;
  background: #fff;
  color: #4b463a;
  font: inherit;
  font-size: 13px;
  font-weight: 900;
  line-height: 1;
  cursor: pointer;
  transition: border-color .16s ease, background .16s ease, color .16s ease, transform .16s ease, box-shadow .16s ease;
}

.kdl-theory-number-nav-list button:hover,
.kdl-theory-number-nav-list button:focus-visible {
  border-color: #9b7b09;
  color: #5b4700;
  outline: none;
  transform: translateY(-1px);
  box-shadow: 0 5px 12px rgba(91, 71, 0, .13);
}

.kdl-theory-number-nav-list button[aria-current="true"] {
  border-color: #342a00;
  background: #efb701;
  color: #251f08;
  box-shadow: 0 5px 14px rgba(111, 84, 0, .22);
}


