/* The source matrix uses one choice-text cell with a grid inside it.
   Equal implicit columns survive HTML sanitization (no inline style required). */
.option-table:has(.option-cell-grid) { table-layout: fixed; }
.option-table .choice-radio { width: 27px; }
.option-table .choice-letter { width: 25px; }
.option-table .option-cell-grid {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(0, 1fr);
  gap: 0;
  align-items: stretch;
}
.option-table .option-cell-grid > .option-cell {
  min-width: 0;
  padding: 6px 12px;
  overflow-wrap: anywhere;
}
.option-table .option-cell-grid > .option-cell + .option-cell {
  border-left: 1px solid #dce5dd;
}
.option-table .option-headings th {
  background: #e9f1ec;
  color: #174638;
  font-weight: 600;
  text-align: left;
  vertical-align: top;
  padding: 10px 8px;
  border-bottom: 2px solid #b9cec0;
}
.option-table .option-headings th:first-child { width: 52px; }
.option-table .option-headings th:last-child { padding-right: 14px; }
.option-table:has(.option-cell-grid) td.choice-text {
  padding-left: 8px;
  padding-right: 14px;
}
.option-table .option-headings .lang-zh { font-weight: 400; }
@media (max-width: 680px) {
  /* Keep headers above their values; allow scrolling instead of collapsing
     a matrix into an unlabeled vertical list on small screens. */
  .option-table:has(.option-cell-grid) { min-width: 540px; }
  .option-table:has(.option-cell-grid > :nth-child(3)) { min-width: 690px; }
  .option-table:has(.option-cell-grid > :nth-child(4)) { min-width: 840px; }
  .option-table:has(.option-cell-grid > :nth-child(5)) { min-width: 990px; }
}
.bank-mcq-preview, .rich-content { overflow-x: auto; }
