.kdl-rich-editor-host{display:grid;gap:14px;min-width:0}
.kdl-rich-editor-instructions{display:grid;gap:4px;padding:13px 15px;border:1px solid #bcd6e5;border-radius:10px;background:#edf8ff;color:#31556a;line-height:1.55}
.kdl-rich-editor-instructions strong{font-size:14px;color:#17445e}
.kdl-rich-editor-instructions span{font-size:12px;font-weight:700}
.kdl-rich-toolbar{position:sticky;top:8px;z-index:8;display:flex;align-items:end;gap:8px;flex-wrap:wrap;padding:11px;border:1px solid #b9d1df;border-radius:11px;background:rgba(255,255,255,.97);box-shadow:0 8px 20px rgba(22,73,103,.1)}
.kdl-rich-toolbar label{display:grid;gap:4px;min-width:112px;color:#31556a;font-size:11px;font-weight:900}
.kdl-rich-toolbar label.is-color{min-width:80px}
.kdl-rich-toolbar select,.kdl-rich-toolbar input[type="color"],.kdl-rich-toolbar button{height:40px;box-sizing:border-box;border:1px solid #aec8d7;border-radius:8px;background:#fff;color:#234457;font:inherit;font-size:13px;font-weight:850}
.kdl-rich-toolbar select{padding:0 28px 0 10px}
.kdl-rich-toolbar input[type="color"]{width:80px;padding:4px;cursor:pointer}
.kdl-rich-toolbar button{padding:0 13px;cursor:pointer}
.kdl-rich-toolbar button:hover{border-color:#2a6f97;background:#edf8ff}
.kdl-rich-upload-status{min-height:18px;color:#2d6a4f;font-size:12px;font-weight:850}
.kdl-rich-upload-status.is-error{color:#a02c2c}
.kdl-rich-fields{display:grid;gap:15px}
.kdl-rich-field{display:grid;gap:7px;min-width:0}
.kdl-rich-field>span{color:#31556a;font-size:13px;font-weight:950}
.kdl-rich-editable{min-height:92px;cursor:text;padding:13px 14px;overflow-wrap:anywhere;border:1px solid #b9ceda;border-radius:9px;background:#fff;color:#26343c;font-size:18px;line-height:1.65;outline:none;white-space:pre-wrap}
.kdl-rich-editable.is-question{min-height:145px;font-size:21px;font-weight:700}
.kdl-rich-editable.is-choice{min-height:72px;font-size:17px}
.kdl-rich-editable.is-explanation{min-height:150px}
.kdl-rich-editable:focus{border-color:#2a6f97;box-shadow:0 0 0 3px rgba(42,111,151,.12)}
.kdl-rich-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.kdl-rich-choice-grid .kdl-rich-field:last-child{grid-column:1/-1}
.kdl-rich-media{max-width:100%;box-sizing:border-box}
.kdl-rich-image{display:block;height:auto;max-height:620px;margin-top:10px;margin-bottom:10px;border-radius:10px;cursor:grab;object-fit:contain}
.kdl-rich-audio{display:inline-flex;vertical-align:middle;width:max-content;max-width:100%;align-items:center;gap:8px;margin:0 4px;padding:9px 13px;border:1px solid #b8d2df;border-radius:999px;background:#edf8ff;color:#17445e;font-size:14px;font-weight:900;line-height:1;cursor:pointer;user-select:none}
.kdl-rich-audio.is-playing{border-color:#2a6f97;background:#dff3ff}
.kdl-rich-media.is-align-left{margin-left:0;margin-right:auto}
.kdl-rich-media.is-align-center{margin-left:auto;margin-right:auto}
.kdl-rich-media.is-align-right{margin-left:auto;margin-right:0}
.kdl-rich-media.is-media-selected{outline:3px solid #f2b705;outline-offset:3px}
.kdl-cbt-question-text .kdl-rich-image,.kdl-cbt-option-text .kdl-rich-image,.kdl-subject-explanation .kdl-rich-image,.kdl-cbt-shared-explanation .kdl-rich-image{width:auto;max-width:100%}
.kdl-cbt-option-text .kdl-rich-audio{font-size:13px}
@media (max-width:760px){
  .kdl-rich-toolbar{position:static;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:end}
  .kdl-rich-toolbar label,.kdl-rich-toolbar label.is-color{min-width:0}
  .kdl-rich-toolbar input[type="color"]{width:100%}
  .kdl-rich-toolbar button{width:100%}
  .kdl-rich-choice-grid{grid-template-columns:1fr}
  .kdl-rich-choice-grid .kdl-rich-field:last-child{grid-column:auto}
  .kdl-rich-editable.is-question{min-height:120px}
}

/* 20260801: question/explanation empty-line spacing */
.kdl-rich-empty-line{
  display:block!important;
  flex:0 0 auto!important;
  width:100%!important;
  height:0!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
  overflow:hidden!important;
  font-size:0!important;
  line-height:0!important;
}
.kdl-cbt-question-text .kdl-rich-empty-line,
.kdl-subject-explanation .kdl-rich-empty-line,
.kdl-cbt-shared-explanation .kdl-rich-empty-line,
.kdl-wrong-question-text .kdl-rich-empty-line,
.kdl-wrong-explanation-content .kdl-rich-empty-line,
.kdl-rich-editable.is-question .kdl-rich-empty-line,
.kdl-rich-editable.is-explanation .kdl-rich-empty-line{
  height:18px!important;
  min-height:18px!important;
  line-height:18px!important;
}
.kdl-cbt-option-text .kdl-rich-empty-line,
.kdl-rich-editable.is-choice .kdl-rich-empty-line,
ul .kdl-rich-empty-line,
ol .kdl-rich-empty-line,
li .kdl-rich-empty-line{
  display:none!important;
  height:0!important;
  min-height:0!important;
  line-height:0!important;
}

/* 20260802: selected text box formatting */
.kdl-rich-box{
  display:block;
  width:100%;
  max-width:100%;
  box-sizing:border-box;
  margin:4px 0;
  padding:20px 12px;
  border:1px solid #9fbfce;
  border-radius:8px;
  background:transparent;
  color:inherit;
  line-height:inherit;
  white-space:pre-wrap;
  overflow-wrap:anywhere;
  vertical-align:baseline;
}
.kdl-rich-editable .kdl-rich-box{cursor:text}

/* 20260802: force selected text to normal weight */
.kdl-rich-thin,.kdl-rich-thin *{font-weight:400!important}

/* 20260802: keep forced thin text after save on every quiz view */
.kdl-cbt-question-text .kdl-rich-thin,
.kdl-cbt-option-text .kdl-rich-thin,
.kdl-subject-explanation .kdl-rich-thin,
.kdl-cbt-shared-explanation .kdl-rich-thin,
.kdl-wrong-question-text .kdl-rich-thin,
.kdl-wrong-explanation-content .kdl-rich-thin,
.kdl-rich-editable .kdl-rich-thin,
.kdl-cbt-question-text .kdl-rich-thin *,
.kdl-cbt-option-text .kdl-rich-thin *,
.kdl-subject-explanation .kdl-rich-thin *,
.kdl-cbt-shared-explanation .kdl-rich-thin *,
.kdl-wrong-question-text .kdl-rich-thin *,
.kdl-wrong-explanation-content .kdl-rich-thin *,
.kdl-rich-editable .kdl-rich-thin *{font-weight:400!important}

/* 20260802: force saved boxes to render identically in subject and round views */
.kdl-cbt-question-text .kdl-rich-box,
.kdl-cbt-option-text .kdl-rich-box,
#cbtSharedExplanationText .kdl-rich-box,
.kdl-subject-explanation .kdl-rich-box,
.kdl-wrong-question-text .kdl-rich-box,
.kdl-wrong-explanation-content .kdl-rich-box,
.kdl-rich-editable .kdl-rich-box{
  display:block!important;
  display:block!important;
  width:100%!important;
  max-width:100%!important;
  box-sizing:border-box!important;
  margin:4px 0!important;
  padding:20px 12px!important;
  border:1px solid #9fbfce!important;
  border-radius:8px!important;
  background:transparent!important;
  color:inherit!important;
  line-height:inherit!important;
  white-space:pre-wrap!important;
  overflow-wrap:anywhere!important;
}


/* 20260802: pasted paragraph blocks must not create unrequested blank spacing */
.kdl-rich-editable div,
.kdl-rich-editable p,
.kdl-rich-editable section,
.kdl-rich-editable article,
.kdl-rich-editable h1,
.kdl-rich-editable h2,
.kdl-rich-editable h3,
.kdl-rich-editable h4,
.kdl-rich-editable h5,
.kdl-rich-editable h6{
  margin:0!important;
  padding:0!important;
  font:inherit;
  color:inherit;
}


/* 20260802: preserve pasted bold text and fill the available width even when a word must split */
.kdl-rich-editable,
.kdl-cbt-question-text,
.kdl-cbt-option-text,
#cbtSharedExplanationText,
#subjectExplanation,
.kdl-subject-explanation,
.kdl-wrong-question-text,
.kdl-wrong-explanation-content{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  box-sizing:border-box!important;
  overflow-wrap:anywhere!important;
  word-wrap:break-word!important;
  word-break:break-all!important;
}
.kdl-rich-editable strong,
.kdl-rich-editable b,
.kdl-cbt-question-text strong,
.kdl-cbt-question-text b,
.kdl-cbt-option-text strong,
.kdl-cbt-option-text b,
#cbtSharedExplanationText strong,
#cbtSharedExplanationText b,
#subjectExplanation strong,
#subjectExplanation b,
.kdl-wrong-question-text strong,
.kdl-wrong-question-text b,
.kdl-wrong-explanation-content strong,
.kdl-wrong-explanation-content b{
  overflow-wrap:anywhere!important;
  word-break:break-all!important;
}

/* 20260802: round-by-round explanation text size */
.kdl-cbt-shared-explanation{
  font-size:22px;
  line-height:1.8;
}
.kdl-cbt-shared-explanation>strong,
#cbtSharedExplanationText,
#cbtSharedExplanationText.has-rich-content{
  font-size:22px;
  line-height:1.8;
}
