/* Original CSS_BASE + CSS_TATE_BLANK + CSS_CHALKBOARD from script/texts.py. */

/*
 * exam-common.css v2.0
 * 中学受験 4教科共通（算数・国語・理科・社会）
 * すべてのスタイルを .exam-question / .exam-solution に限定。
 * HTML: <div class="exam-question">...</div>
 *       <div class="exam-solution">...</div>
 * サイト側でこのファイルを一度だけ読み込む。
 */

/* 1. 全教科共通の本文 */
:is(.exam-question, .exam-solution) {
  box-sizing: border-box;
  width: 100%;
  max-width: 740px;
  margin: 0 auto;
  padding: var(--space);
  color: #111;
  background: #fff;
  font-family: "Hiragino Mincho ProN","Yu Mincho","Hiragino Mincho Pro","MS PMincho",serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.85;
  letter-spacing: 0;
  text-align: left;
  overflow-wrap: break-word;
  word-break: normal;
}

:is(.exam-question, .exam-solution),
:is(.exam-question, .exam-solution) *,
:is(.exam-question, .exam-solution) *::before,
:is(.exam-question, .exam-solution) *::after {
  box-sizing: border-box;
}

:is(.exam-question, .exam-solution) :where(p, .exam-text) {
  margin: 0 0 var(--space);
}

:is(.exam-question, .exam-solution) > :last-child {
  margin-bottom: 0;
}

:is(.exam-question, .exam-solution) :where(strong, b, .exam-emphasis, .exam-term) {
  font-weight: 700;
}

:is(.exam-question, .exam-solution) :where(.exam-underline, u) {
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.15em;
}

:is(.exam-question, .exam-solution) :where(ul, ol, .exam-list) {
  margin: var(--space) 0 var(--space);
  padding-left: 1.7em;
}

:is(.exam-question, .exam-solution) li {
  margin: var(--space) 0;
}

:is(.exam-question, .exam-solution) :where(.exam-note, .exam-source, .exam-figure-caption) {
  font-size: 0.875em;
  line-height: 1.65;
}

:is(.exam-question, .exam-solution) .exam-source {
  margin: var(--space) 0 0;
  text-align: right;
}

/* 2. 算数: 計算式、分数、数量 */
:is(.exam-question, .exam-solution) .exam-equation {
  max-width: 100%;
  margin: var(--space) 0 var(--space);
  padding: var(--space) 0;
  overflow-x: auto;
  overflow-y: hidden;
  font-variant-numeric: tabular-nums;
  line-height: 1.65;
  white-space: nowrap;
  -webkit-overflow-scrolling: touch;
}

:is(.exam-question, .exam-solution) .exam-fraction {
  display: inline-flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: center;
  vertical-align: middle;
  margin: 0;
  line-height: 1.25;
  text-align: center;
}

:is(.exam-question, .exam-solution) .exam-fraction > :first-child {
  padding: calc(var(--space) / 2);
  border-bottom: 1px solid currentColor;
}

:is(.exam-question, .exam-solution) .exam-fraction > :last-child {
  padding: calc(var(--space) / 2);
}

/* 3. 国語: 本文、ルビ、引用、縦書き */
:is(.exam-question, .exam-solution) .exam-passage {
  margin: var(--space) 0;
  line-height: 2.05;
  text-align: justify;
  text-justify: inter-ideograph;
}

:is(.exam-question, .exam-solution) .exam-passage-title {
  margin: 0 0 var(--space);
  font-weight: 700;
  text-align: center;
}

:is(.exam-question, .exam-solution) ruby {
  ruby-position: over;
}

:is(.exam-question, .exam-solution) rt {
  font-size: 0.55em;
  font-weight: 400;
}

:is(.exam-question, .exam-solution) .exam-quote {
  margin: var(--space) 0;
  padding: var(--space) 0 var(--space) var(--space);
  border-left: 2px solid #333;
}

/* 縦書きが必要な設問だけ使用する。スマホでは横方向スクロール可 */
:is(.exam-question, .exam-solution) .exam-vertical-wrap {
  max-width: 100%;
  overflow-x: auto;
  overflow-y: hidden;
}

:is(.exam-question, .exam-solution) .exam-vertical {
  writing-mode: vertical-rl;
  text-orientation: mixed;
  width: max-content;
  max-height: 32em;
  min-height: 8em;
  line-height: 2;
  padding: var(--space);
}

/* 4. 理科・社会: 実験条件、資料、地図、年表など */
:is(.exam-question, .exam-solution) :where(.exam-material, .exam-experiment, .exam-record, .exam-timeline) {
  margin: var(--space) 0;
  padding: var(--space);
  border: 1px solid #444;
  background: #fff;
}

:is(.exam-question, .exam-solution) .exam-material-title {
  margin: 0 0 var(--space);
  font-weight: 700;
}

:is(.exam-question, .exam-solution) .exam-material > :last-child,
:is(.exam-question, .exam-solution) .exam-experiment > :last-child,
:is(.exam-question, .exam-solution) .exam-record > :last-child,
:is(.exam-question, .exam-solution) .exam-timeline > :last-child {
  margin-bottom: 0;
}

/* 5. 4教科共通: 図、画像、グラフ、地図、SVG */
:is(.exam-question, .exam-solution) :where(.exam-figure, .exam-chart, .exam-map) {
  max-width: 100%;
  margin: var(--space) auto;
  text-align: center;
}

:is(.exam-question, .exam-solution) :where(.exam-figure, .exam-chart, .exam-map) :where(img, svg),
:is(.exam-question, .exam-solution) > :where(img, svg) {
  display: block;
  width: auto;
  max-width: 100%;
  height: auto;
  margin: 0 auto;
}

:is(.exam-question, .exam-solution) .exam-figure-caption {
  margin: var(--space) 0 0;
  text-align: center;
}

/* 6. 4教科共通: 表（横幅不足時は表だけスクロール） */
:is(.exam-question, .exam-solution) .exam-table-wrap {
  width: 100%;
  max-width: 100%;
  margin: var(--space) 0;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

:is(.exam-question, .exam-solution) .exam-table {
  width: 100%;
  border-collapse: collapse;
  border-spacing: 0;
  color: inherit;
  background: #fff;
  font-size: 0.95em;
  line-height: 1.55;
  text-align: center;
}

:is(.exam-question, .exam-solution) .exam-table :where(th, td) {
  border: 1px solid #222;
  padding: var(--space);
  vertical-align: middle;
}

:is(.exam-question, .exam-solution) .exam-table th {
  background: #fff;
  font-weight: 700;
}

/* 7. 解説専用: 手順、結論 */
.exam-solution .exam-step {
  margin: 0 0 var(--space);
}

.exam-solution .exam-step-title {
  margin: 0 0 var(--space);
  font-weight: 700;
}

.exam-solution .exam-step > :last-child {
  margin-bottom: 0;
}

.exam-solution .exam-result {
  margin: var(--space) 0 0;
  padding-top: var(--space);
  border-top: 1px solid #222;
  font-weight: 700;
}

/* 印刷 */
@media print {
  :is(.exam-question, .exam-solution) {
    max-width: none;
    margin: 0;
    padding: 0;
    color: #000;
    background: #fff;
    font-size: 11pt;
    line-height: 1.7;
    print-color-adjust: exact;
  }

  :is(.exam-question, .exam-solution) :where(.exam-figure, .exam-chart, .exam-map, .exam-material, .exam-experiment, .exam-record, .exam-timeline, .exam-step),
  :is(.exam-question, .exam-solution) .exam-table tr {
    break-inside: avoid;
    page-break-inside: avoid;
  }

  :is(.exam-question, .exam-solution) :where(.exam-table-wrap, .exam-equation, .exam-vertical-wrap) {
    overflow: visible;
  }
}

/* 番号・記号付き文章：縦書き・横書き共通 */
:is(.exam-question, .exam-solution) .exam-choice {
    padding-inline-start: 2em;
    text-indent: -2em;
}



/* 国語：横書きモード（問題・解説共通） */
:is(.exam-question, .exam-solution) .exam-vertical-wrap {
  direction: ltr;
  overflow: visible;
}

:is(.exam-question, .exam-solution) .exam-vertical {
  writing-mode: horizontal-tb;
  direction: ltr;
  width: 100%;
  height: auto;
  max-height: none;
  min-height: 0;
  padding: 0;
  margin: 0;
}



/* 黒板テーマ */

.chalkboard {
    --exam-board-bg: #20382d;                /* 全体背景 */
    --exam-chalk-color: #e5e5d9;             /* 文字色 */
    --exam-input-bg: rgba(255,255,255,0.25); /* 入力背景 */

    background: var(--exam-board-bg);
    color: var(--exam-chalk-color);
}

/* 問題・解説 */
.chalkboard :is(.exam-question, .exam-solution) {
    background: transparent;
    color: inherit;
}

/* 資料・実験・記録・年表 */
.chalkboard :is(.exam-question, .exam-solution)
:is(.exam-material, .exam-experiment, .exam-record, .exam-timeline) {
    background: transparent;
    border-color: currentColor;
}

/* 表：Jupyter側の強制スタイルにも対応 */
.chalkboard :is(.exam-question, .exam-solution) .exam-table,
.chalkboard :is(.exam-question, .exam-solution) .exam-table
:is(thead, tbody, tfoot, tr, th, td) {
    background-color: transparent !important;
    color: inherit !important;
}

.chalkboard :is(.exam-question, .exam-solution)
.exam-table :is(th, td) {
    border-color: currentColor !important;
}

/* 引用・区切り線 */
.chalkboard :is(.exam-question, .exam-solution) .exam-quote {
    border-left-color: currentColor;
}

.chalkboard .exam-solution .exam-result {
    border-top-color: currentColor;
}

/* SVGのcurrentColorを継承 */
.chalkboard :is(.exam-question, .exam-solution) svg {
    color: inherit;
}
