/* =====================================================================
   STUDYMO PRINT — 解きやすさのための共通レイアウト（2026/10/10）
   根拠:
   - 文字サイズ: 小1前後は18ptの方が12ptより判読しやすい（Woods, Davis & Scharff 2005）。
     読み書き配慮の指針は本文12pt以上・行間1.5（Edinburgh大 試験問題ガイド / Accessible Text Guidelines）。
   - 解答欄の高さ: 学年のノートのマス（小1 22〜25mm、小2 15mm前後、小3〜6 10mm、中学 7mm罫）に合わせる。
   - 解答欄の幅: 欄の大きさは「書く量の合図」になり、小さすぎると欄外へのはみ出しが増える（Israel 2010 / Christian & Dillman 2004）。
     → 幅は ud-fit.js が答えの長さから自動で決める。
   - 区切り: 問題と問題の境目を線で示す（Perkins School for the Blind: 複数列では問題間に線を）。
   - 強調は太字、補足は小さすぎない濃いグレー（色だけで情報を伝えない）。
   ===================================================================== */

/* ---- 本文の文字サイズ（学年帯） ---- */
html body :is(#sheet,.sheet-a4.sm-page) :is(#qArea,[data-sm-qarea]) .q{ line-height:1.5; }
html body :is(#sheet,.sheet-a4.sm-page)[data-grade="low"]  :is(#qArea,[data-sm-qarea]) .q{ font-size:24px; }   /* 18pt */
html body :is(#sheet,.sheet-a4.sm-page)[data-grade="mid"]  :is(#qArea,[data-sm-qarea]) .q{ font-size:17px; }   /* 12.75pt */
html body :is(#sheet,.sheet-a4.sm-page)[data-grade="high"] :is(#qArea,[data-sm-qarea]) .q{ font-size:16px; }   /* 12pt */
html body :is(#sheet,.sheet-a4.sm-page):not([data-grade]) :is(#qArea,[data-sm-qarea]) .q{ font-size:16px; }
/* 一問一答（理科・社会など）の本文 */
html body :is(#sheet,.sheet-a4.sm-page) :is(#qArea,[data-sm-qarea]) .q.qa{ font-size:16px; }
html body :is(#sheet,.sheet-a4.sm-page)[data-grade="low"] :is(#qArea,[data-sm-qarea]) .q.qa{ font-size:20px; }
html body :is(#sheet,.sheet-a4.sm-page) :is(#qArea,[data-sm-qarea]) .q.qa .ans{ font-size:15px; }

/* ---- 問題番号：探しやすく ---- */
html body :is(#sheet,.sheet-a4.sm-page) :is(#qArea,[data-sm-qarea]) .qn{ font-size:14px; color:#333; font-weight:700; min-width:30px; }
html body :is(#sheet,.sheet-a4.sm-page)[data-grade="low"] :is(#qArea,[data-sm-qarea]) .qn{ font-size:18px; }

/* ---- 補足・選択肢の小さい文字：10.5pt以上・濃いグレー ---- */
html body :is(#sheet,.sheet-a4.sm-page) :is(#qArea,[data-sm-qarea]) .q .m,
html body :is(#sheet,.sheet-a4.sm-page) :is(#qArea,[data-sm-qarea]) .q .ch,
html body :is(#sheet,.sheet-a4.sm-page) :is(#qArea,[data-sm-qarea]) .q small.gt{ font-size:max(0.82em, 14px); color:#3a3a3a; }
html body :is(#sheet,.sheet-a4.sm-page) :is(#qArea,[data-sm-qarea]) .q .ch{ word-spacing:.35em; }

/* ---- 解答欄の高さ（学年のノートのマスに合わせる） ---- */
html body :is(#sheet,.sheet-a4.sm-page) :is(#qArea,[data-sm-qarea]) .blank{ max-width:none; border-color:#8c857a; }
html body :is(#sheet,.sheet-a4.sm-page)[data-grade="low"]  :is(#qArea,[data-sm-qarea]) .blank{ min-height:60px; }  /* 約16mm */
html body :is(#sheet,.sheet-a4.sm-page)[data-grade="mid"]  :is(#qArea,[data-sm-qarea]) .blank{ min-height:42px; }  /* 約11mm */
html body :is(#sheet,.sheet-a4.sm-page)[data-grade="high"] :is(#qArea,[data-sm-qarea]) .blank,
html body :is(#sheet,.sheet-a4.sm-page):not([data-grade]) :is(#qArea,[data-sm-qarea]) .blank{ min-height:38px; }  /* 約10mm */
html body :is(#sheet,.sheet-a4.sm-page) :is(#qArea,[data-sm-qarea]) .q.qa .ans .blank{ min-height:38px; }
html body :is(#sheet,.sheet-a4.sm-page)[data-grade="low"] :is(#qArea,[data-sm-qarea]) .q.qa .ans .blank{ min-height:56px; }
@media print{ html body :is(#sheet,.sheet-a4.sm-page) :is(#qArea,[data-sm-qarea]) .blank{ border-color:#777; } }

/* ---- 問題の区切り線：点線→うすい実線で境目をはっきり ---- */
html body :is(#sheet,.sheet-a4.sm-page) :is(#qArea,[data-sm-qarea]) .q{ border-bottom:1px solid #E2E2DC; }

/* ---- ud-fit.js が「答えが長い」と判断した問題は、解答欄を問題文の下に全幅で ---- */
html body :is(#sheet,.sheet-a4.sm-page) :is(#qArea,[data-sm-qarea]) .q.item.ud-wrap{ flex-wrap:wrap; row-gap:4px; }
html body :is(#sheet,.sheet-a4.sm-page) :is(#qArea,[data-sm-qarea]) .q.item.ud-wrap > .blank{ flex:1 1 100% !important; margin-left:38px; max-width:calc(100% - 38px) !important; }

/* ---- 問題の指示文（「● 〜しましょう」）：本文に近い大きさ・濃さに ---- */
html body :is(#sheet,.sheet-a4.sm-page) :is(#qArea,[data-sm-qarea]) .ud-inst{ font-size:15px !important; color:#333 !important; }
html body :is(#sheet,.sheet-a4.sm-page)[data-grade="low"] :is(#qArea,[data-sm-qarea]) .ud-inst{ font-size:18px !important; }
html body :is(#sheet,.sheet-a4.sm-page) :is(#qArea,[data-sm-qarea]) .ms-note{ font-size:14px; }

/* ---- 選択肢：本文と同じ大きさ、マークは塗りやすい大きさに ---- */
html body :is(#sheet,.sheet-a4.sm-page) :is(#qArea,[data-sm-qarea]) .mc-opts,
html body :is(#sheet,.sheet-a4.sm-page) :is(#qArea,[data-sm-qarea]) .ms-opts{ font-size:15px; line-height:1.9; }
html body :is(#sheet,.sheet-a4.sm-page) :is(#qArea,[data-sm-qarea]) .ms-bub{ width:26px; height:26px; font-size:13px; }

/* ---- 「答え」「式」などのラベル ---- */
html body :is(#sheet,.sheet-a4.sm-page) :is(#qArea,[data-sm-qarea]) .lab,
html body :is(#sheet,.sheet-a4.sm-page) :is(#qArea,[data-sm-qarea]) .ms-lab{ font-size:13px; color:#333; }
html body :is(#sheet,.sheet-a4.sm-page) :is(#qArea,[data-sm-qarea]) .jb-era{ font-size:12px; }

/* ---- 問題文は列の幅で折り返す（隣の列へのはみ出し・番号だけ1行目に残る現象を防ぐ） ---- */
html body :is(#sheet,.sheet-a4.sm-page) :is(#qArea,[data-sm-qarea]) .q.item > .prompt{ flex:1 1 auto; min-width:0; white-space:normal; overflow-wrap:anywhere; }
html body :is(#sheet,.sheet-a4.sm-page) :is(#qArea,[data-sm-qarea]) .q.item > .qn{ flex:none; }

/* ---- 一問一答（理科・社会など）：答え欄は問題文のすぐ下、答えの長さに合わせた幅（ud-fit.js） ---- */
html body :is(#sheet,.sheet-a4.sm-page) :is(#qArea,[data-sm-qarea]) .q.qa{ padding:5px 0 6px; }
html body :is(#sheet,.sheet-a4.sm-page) :is(#qArea,[data-sm-qarea]) .q.qa .ans{ margin-top:3px; }
html body :is(#sheet,.sheet-a4.sm-page) :is(#qArea,[data-sm-qarea]) .q.qa .ans .blank.ud-sized{ flex:0 1 auto; }

/* ---- 補足の文（「なかまはずれはどれ？」など）は語の途中で切らず、ひとまとまりで折り返す ---- */
html body :is(#sheet,.sheet-a4.sm-page)[data-grade="low"] :is(#qArea,[data-sm-qarea]) .q.item .prompt .m{ display:inline-block; margin-left:.4em; }
/* ---- 低学年の「まえ／うしろ」などのラベル ---- */
html body :is(#sheet,.sheet-a4.sm-page) :is(#qArea,[data-sm-qarea]) .q.item .prompt .row .lbl{ font-size:15px; color:#333; }

/* ---- 指示文（ud-fit.js が .ud-inst を付与） ---- */
html body :is(#sheet,.sheet-a4.sm-page) :is(#qArea,[data-sm-qarea]) .ud-inst{ font-size:15px !important; color:#333 !important; font-weight:700; }
html body :is(#sheet,.sheet-a4.sm-page)[data-grade="low"] :is(#qArea,[data-sm-qarea]) .ud-inst{ font-size:18px !important; }
html body :is(#sheet,.sheet-a4.sm-page) :is(#qArea,[data-sm-qarea]) .drill-h + .s,
html body :is(#sheet,.sheet-a4.sm-page) :is(#qArea,[data-sm-qarea]) span.s{ font-size:13px; }

/* ---- 答え表示：解答欄の位置に答えを出す（答え合わせで目を動かさずに済むように） ---- */
html body .show-answers :is(#qArea,[data-sm-qarea]) .q.item:has(> .sol) > .blank{ display:none; }
html body .show-answers :is(#qArea,[data-sm-qarea]) .q.item > .sol{ white-space:normal; flex:0 1 auto; max-width:60%; text-align:left; margin-left:auto; padding:2px 8px; border:1.3px dashed #e0a3a3; border-radius:4px; }
html body .show-answers :is(#qArea,[data-sm-qarea]) .q.item.ud-wrap > .sol{ flex:1 1 100%; max-width:calc(100% - 38px); margin-left:38px; }

/* ---- 見出し：題名が長くても「月 日・名前・点」の欄は崩さない（名前を書く欄を確保） ---- */
html body .sheet-a4 .sh-head{ gap:12px; }
html body .sheet-a4 .sh-title{ flex:1 1 auto; min-width:0; }
html body .sheet-a4 .sh-title .lv{ display:inline-block; }
html body .sheet-a4 .sh-meta{ flex:none; white-space:nowrap; }
html body .show-answers :is(#qArea,[data-sm-qarea]) .q.qa .ans:has(> .sol) > .blank{ display:none; }
html body .show-answers :is(#qArea,[data-sm-qarea]) .q.qa .ans > .sol{ white-space:normal; margin-left:0; padding:2px 8px; border:1.3px dashed #e0a3a3; border-radius:4px; }

/* ---- 小1〜2：数字1文字でも書ける大きさ（小1のノートのマス 22mm前後を目安に最低16mm角） ---- */
html body :is(#sheet,.sheet-a4.sm-page)[data-grade="low"] :is(#qArea,[data-sm-qarea]) .blank{ min-width:60px; }

/* ---- 番号・問題文・欄の並び：欄を横に置く問題は1行に保ち、下に置く問題は「番号＋問題文」の次の行に欄 ---- */
html body :is(#sheet,.sheet-a4.sm-page) :is(#qArea,[data-sm-qarea]) .q.item[data-udfit]:not(.ud-wrap){ flex-wrap:nowrap; }
html body :is(#sheet,.sheet-a4.sm-page) :is(#qArea,[data-sm-qarea]) .q.item.ud-wrap > .prompt{ max-width:calc(100% - 44px); }

/* ---- 筆算：マスを約10mmに広げ、けたごとに薄い縦のガイドを入れて位をそろえやすく
        （位ずれ対策ノート：15mmマス＋縦方向のあみかけ／小3〜6のノート 10mmマス） ---- */
html body :is(#sheet,.sheet-a4.sm-page) :is(#qArea,[data-sm-qarea]) .hs-cell{ width:38px; height:40px; }
html body :is(#sheet,.sheet-a4.sm-page) :is(#qArea,[data-sm-qarea]) .hs-row.ansrow .hs-cell{ height:42px; }
html body :is(#sheet,.sheet-a4.sm-page) :is(#qArea,[data-sm-qarea]) .hs-cell .hs-d{ font-size:23px; }
html body :is(#sheet,.sheet-a4.sm-page) :is(#qArea,[data-sm-qarea]) .hs-row .hs-cell,
html body :is(#sheet,.sheet-a4.sm-page) :is(#qArea,[data-sm-qarea]) .hs-carry .hs-cell{ box-shadow:inset 1px 0 0 #dcd8cf; }
html body :is(#sheet,.sheet-a4.sm-page) :is(#qArea,[data-sm-qarea]) .hs-row .hs-cell:last-child,
html body :is(#sheet,.sheet-a4.sm-page) :is(#qArea,[data-sm-qarea]) .hs-carry .hs-cell:last-child{ box-shadow:inset 1px 0 0 #dcd8cf, inset -1px 0 0 #dcd8cf; }
html body :is(#sheet,.sheet-a4.sm-page) :is(#qArea,[data-sm-qarea]) .hs-row.ansrow .hs-cell{ border-bottom:1.2px dashed #c9c4b8; }
html body :is(#sheet,.sheet-a4.sm-page) :is(#qArea,[data-sm-qarea]) .hs-carry .hs-cell{ height:16px; }
html body :is(#sheet,.sheet-a4.sm-page) :is(#qArea,[data-sm-qarea]) .hs-qn{ font-size:14px; color:#333; font-weight:700; }

/* ---- 小学生の英語の解答欄：四線（5:9:5、基線は青。網かけは正答率に差がなかったため入れない）
        参考：小野「英語指導における四線ノートの工夫」（北海道教育大学）、兼重ほか(2020) ---- */
html body :is(#sheet,.sheet-a4.sm-page) :is(#qArea,[data-sm-qarea]) .blank.ud-eng{
  min-height:56px; padding:0 8px; border:0 !important; background-color:transparent !important;
  background-image:linear-gradient(#a9a9a3,#a9a9a3),linear-gradient(#c4c4be,#c4c4be),linear-gradient(#3f6fb5,#3f6fb5),linear-gradient(#a9a9a3,#a9a9a3);
  background-size:calc(100% - 12px) 1px,calc(100% - 12px) 1px,calc(100% - 12px) 1.6px,calc(100% - 12px) 1px;
  background-position:6px 8px,6px 19px,6px 40px,6px 51px; background-repeat:no-repeat;
  -webkit-print-color-adjust:exact; print-color-adjust:exact;
}

/* ---- 解答欄が下の行に回ったときは「→」を出さない（矢印だけが行末に取り残されるのを防ぐ） ---- */
html body :is(#sheet,.sheet-a4.sm-page) :is(#qArea,[data-sm-qarea]) .q.item.ud-wrap > .arrow{ display:none; }

/* ---- 答え表示：問題文が長くても答えを縦に細切れにしない（答えは縮めず、最大45%幅で折り返す） ---- */
html body .show-answers :is(#qArea,[data-sm-qarea]) .q.item:not(.ud-wrap) > .sol{ flex:0 0 auto; max-width:45%; }

/* ---- 漢字の書き取りマス：小1〜2は約18mm角（小1ノート22〜25mm・小2 15mm前後の間） ---- */
html body :is(#sheet,.sheet-a4.sm-page)[data-grade="low"] :is(#qArea,[data-sm-qarea]) .kj-cell{ width:68px; height:68px; }
html body :is(#sheet,.sheet-a4.sm-page)[data-grade="low"] :is(#qArea,[data-sm-qarea]) .kj-cell .sol,
html body :is(#sheet,.sheet-a4.sm-page)[data-grade="low"] :is(#qArea,[data-sm-qarea]) .kj-trace{ font-size:46px; }
/* 読みがな（問題そのもの）は小さくしない */
html body :is(#sheet,.sheet-a4.sm-page) :is(#qArea,[data-sm-qarea]) .kj-yomi{ font-size:15px; color:#333; }
html body :is(#sheet,.sheet-a4.sm-page)[data-grade="low"] :is(#qArea,[data-sm-qarea]) .kj-yomi{ font-size:18px; }
html body :is(#sheet,.sheet-a4.sm-page) :is(#qArea,[data-sm-qarea]) .q:has(.kj-cells){ padding-top:3px; padding-bottom:4px; }

/* 2026/10/11 読む文字は12px以上（指示・説明・欄の見出し）。下つき・上つき文字と出典表記は対象外 */
.sheet-a4 .tn-say-t{font-size:13px!important}
.sheet-a4 .sym-desc{font-size:13px!important;line-height:1.35}
.sheet-a4 .gr-tag{font-size:12.5px!important}
.sheet-a4 .rd-src{font-size:13px!important}
.sheet-a4 .rp-label,.sheet-a4 .cell.name,.sheet-a4 .cell.date{font-size:12px!important}
.sheet-a4 .rj-note,.sheet-a4 .hyou-note{font-size:12.5px!important}
.sheet-a4 .sk-title-input{font-size:12.5px!important}
.sheet-a4 table th{font-size:max(13px,1em)}
.sheet-a4 .ks-day,.sheet-a4 .ks-sub,.sheet-a4 .ks-unit{font-size:13px!important}
