/* 苦手参考書（views/print.js）：紙の大きさのページ（.pb-sheet）を並べ、そのまま印刷・PDFにする
   紙面は書籍『一問一答大全』と同じ（色・書体・見出し・回別の出題数の棒・一問一答の行・過去問の組み）。
   紙の大きさ・余白は .pb-doc の --pw --ph --mt --mb --mi --mo（mm）。ツメの高さは --tab-h。
   紙は印刷物なので色は固定。色と書体の変数は .pb-doc の中だけで決める（サイトの変数も紙の値に置きかえる）。 */

.pb-doc {
  --paper: #ffffff; --ink: #18202c; --ink2: #4a5464; --ink3: #6f7987; --rule: #c4ced6; --rule2: #e2e7eb;
  --tint: #e6f1f0; --tint2: #f3f6f7; --teal: #0a676b; --teal2: #5c9ea0; --deep: #0f4f4b;
  --amber: #a86f00; --ans: #e83b16; --navy: #1f2d47; --mark: #ffe94d; --brand-red: #d23c28;
  --hogan: #f8f7f1; --hogan-line: rgba(10, 103, 107, .1);
  --f-disp: "Zen Kaku Gothic New", "BIZ UDPGothic", "Hiragino Sans", "Yu Gothic", sans-serif;
  --f-body: "BIZ UDPGothic", "Zen Kaku Gothic New", "Hiragino Sans", "Yu Gothic", "Meiryo", sans-serif;
  --f-code: "BIZ UDGothic", "BIZ UDPGothic", "Osaka-Mono", monospace;
  --f-min: "Zen Old Mincho", "BIZ UDMincho", "Hiragino Mincho ProN", "Yu Mincho", serif;
  /* サイトの部品（.num など）が使う変数も紙の値に */
  --bg: var(--paper); --fg: var(--ink); --num: var(--f-code); --sans: var(--f-body);
  color-scheme: light;
  color: var(--ink); font-family: var(--f-body);
  font-size: 8.4pt; line-height: 1.6; letter-spacing: .01em;
  display: grid; justify-content: center; gap: 18px; padding: 8px 0 40px;
  -webkit-print-color-adjust: exact; print-color-adjust: exact;
}
.pb-doc[data-size="A4"] { font-size: 9.2pt; }
.pb-doc b, .pb-doc strong { font-weight: 700; }
.pb-doc h2, .pb-doc h3 { font-family: var(--f-disp); font-weight: 900; letter-spacing: .02em; line-height: 1.25; }

/* ---------- 画面：道具とページの並び ---------- */
.pb-tools { border-bottom: 1px solid var(--line); background: var(--bg); }
.pb-tools .wrap { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 12px; padding-block: 12px; }
.pb-tools .xsmall { flex: 1 1 18em; min-width: 0; }
.pb-tools .pb-sheet-btn[aria-pressed="true"], .pb-tools .pb-sheet-btn[aria-pressed="true"]:hover { background: #e83b16; border-color: #e83b16; color: #fff; }
.pb-stage { background: #d6dce0; padding: 16px 8px 8px; overflow: hidden; overflow: clip; } /* clip：中の要素へ飛んだときに、この箱だけがずれないように */
@media screen {
  .pb-doc { zoom: var(--pb-zoom, 1); }
  /* 広い画面は見開き（書籍のWeb版と同じ。表紙は右ページ） */
  .pb-doc.spread { grid-template-columns: repeat(2, var(--pw)); column-gap: 0; row-gap: 28px; }
  .pb-doc.spread .pb-ghost { display: block; }
  .pb-doc.spread .pb-sheet.even { box-shadow: inset -14px 0 18px -14px rgba(0, 0, 0, .16), 0 10px 28px -14px rgba(16, 32, 44, .4); }
  .pb-doc.spread .pb-sheet.odd { box-shadow: inset 14px 0 18px -14px rgba(0, 0, 0, .12), 0 10px 28px -14px rgba(16, 32, 44, .4); }
}
.pb-ghost { display: none; }
.pb-measure { width: calc(var(--pw) - var(--mi) - var(--mo)); visibility: hidden; position: absolute; left: -10000px; top: 0; }

/* 赤シート（画面だけ）：赤字を隠し、押した語だけ見せる */
.pb-doc.redsheet .pb-key { color: transparent; background: #fff0a0; box-shadow: inset 0 0 0 .25mm #f2d65a; border-radius: .5mm; cursor: pointer; }
.pb-doc.redsheet .pb-key.show { color: var(--ans); background: none; box-shadow: none; }
.pb-doc.redsheet .pb-key.pb-mk.show { box-shadow: inset 0 -.45em 0 var(--mark); }

/* ---------- ページ ---------- */
.pb-sheet {
  position: relative; width: var(--pw); height: var(--ph); overflow: hidden;
  background: var(--paper); color: var(--ink);
  box-shadow: 0 10px 28px -14px rgba(16, 32, 44, .4);
}
.pb-body { position: absolute; top: var(--mt); bottom: var(--mb); overflow: hidden; display: flow-root; }
.pb-sheet.odd .pb-body { left: var(--mi); right: var(--mo); }
.pb-sheet.even .pb-body { left: var(--mo); right: var(--mi); }
.pb-sheet.cover .pb-body, .pb-sheet.colophon .pb-body { inset: 0; }
.pb-body > * + * { margin-top: 2.6mm; }
.pb-body > .pb-pt + .pb-pt, .pb-body > .pb-cz + .pb-cz, .pb-body > .pb-tc + .pb-tc, .pb-body > .pb-ca + .pb-ca, .pb-body > .pb-ca + .pb-ma, .pb-body > .pb-ma + .pb-ma, .pb-body > .pb-cont + *,
.pb-body > .pb-how + .pb-pt, .pb-body > .pb-how + .pb-cz, .pb-body > .pb-how + .pb-ca { margin-top: 0; }

/* 柱（書籍と同じ深緑の太字と罫） */
.pb-rh { position: absolute; top: calc(var(--mt) - 9mm); height: 6mm; display: flex; align-items: flex-end; gap: 0; font: 700 6.8pt/1 var(--f-disp); color: var(--teal); letter-spacing: .08em; border-bottom: .25mm solid var(--teal); padding-bottom: 1.4mm; }
.pb-sheet.odd .pb-rh { left: var(--mi); right: var(--mo); }
.pb-sheet.even .pb-rh { left: var(--mo); right: var(--mi); }
.pb-rh i { display: inline-block; width: .25mm; height: 1em; background: var(--teal2); margin: 0 .8em; }

/* ツメ（小口に章の番号と分野名） */
.pb-tab { position: absolute; top: calc(var(--mt) + var(--ti) * var(--tab-h)); width: 8mm; height: calc(var(--tab-h) - 1.5mm); background: var(--teal); color: #fff; display: flex; flex-direction: column; align-items: center; justify-content: flex-start; gap: 1.2mm; padding-top: 2.2mm; overflow: hidden; }
.pb-sheet.odd .pb-tab { right: 0; }
.pb-sheet.even .pb-tab { left: 0; }
.pb-tab b { font: 900 10pt/1 var(--f-disp); }
.pb-tab span { writing-mode: vertical-rl; font: 700 6.6pt/1 var(--f-disp); letter-spacing: .14em; white-space: nowrap; }

/* ノンブルと透かし */
.pb-ft { position: absolute; bottom: calc(var(--mb) - 12mm); height: 7mm; left: var(--mi); right: var(--mo); display: flex; align-items: center; gap: 4mm; font-size: 6pt; color: var(--ink3); }
.pb-sheet.even .pb-ft { left: var(--mo); right: var(--mi); flex-direction: row-reverse; }
.pb-sheet.cover .pb-ft, .pb-sheet.colophon .pb-ft { left: 14mm; right: 14mm; bottom: 5mm; }
.pb-wm { flex: 1 1 auto; min-width: 0; text-align: center; letter-spacing: .02em; line-height: 1.35; max-height: 2.7em; overflow: hidden; }
.pb-fo { flex: none; min-width: 8mm; font: 400 7.4pt var(--f-code); color: var(--ink2); }
.pb-sheet.odd .pb-fo { text-align: right; }
.pb-cont { font: 700 6.8pt var(--f-disp); color: var(--teal); letter-spacing: .08em; padding-bottom: 1.6mm; }
.pb-tall { max-height: 100%; }

/* ---------- 部品 ---------- */
.pb-key { color: var(--ans); font-weight: 700; }
.pb-mk { box-shadow: inset 0 -.45em 0 var(--mark); -webkit-box-decoration-break: clone; box-decoration-break: clone; }
.pb-cb { display: inline-block; width: 3.1mm; height: 3.1mm; border: .3mm solid var(--ink2); flex: none; vertical-align: -.5mm; }
.pb-star { color: var(--amber); font-size: .82em; letter-spacing: -.05em; white-space: nowrap; }
.pb-star em { font-style: normal; color: var(--rule); }
.pb-hs { display: inline-block; background: var(--navy); color: #fff; font: 700 6.2pt/1.45 var(--f-body); padding: 0 .4em; margin-left: .45em; border-radius: .5mm; letter-spacing: .05em; vertical-align: .08em; }
.pb-me { display: inline-block; font: 700 6.4pt/1.5 var(--f-body); padding: 0 .5em; border-radius: .5mm; letter-spacing: .04em; border: .25mm solid currentColor; }
.pb-me.ng { color: var(--ans); }
.pb-me.un { color: var(--amber); }
.pb-me + .pb-me { margin-left: 1mm; }
.pb-src { font: 400 6.2pt/1.5 var(--f-code); color: var(--ink2); letter-spacing: -.02em; }
.pb-src b { color: var(--ink); font-weight: 700; }
.pb-src i { font-style: normal; color: var(--ink3); }
.pb-trap { border: .3mm dashed var(--amber); padding: 1.4mm 2.6mm; font-size: 7.8pt; line-height: 1.55; }
.pb-trap b { color: var(--amber); font-family: var(--f-disp); font-weight: 900; margin-right: .8em; }
.pb-pg { font: 400 7.6pt var(--f-code); color: var(--ink2); text-align: right; min-width: 6mm; }

/* 回別の出題数（書籍と同じ棒） */
.pb-bars { display: grid; grid-template-columns: auto repeat(10, minmax(0, 1fr)); align-items: end; gap: 0 1mm; }
.pb-bars .h { font-size: 6pt; color: var(--ink2); padding-right: 1.6mm; align-self: center; }
.pb-bars .c { display: flex; flex-direction: column; align-items: center; font: 400 5.6pt/1.2 var(--f-code); color: var(--ink2); }
.pb-bars .c b { font-size: 6.6pt; color: var(--ink); }
.pb-bars .c i { display: block; width: 100%; height: calc(5mm * var(--v) + .25mm); background: var(--teal2); margin: .4mm 0; }
.pb-bars.mini { grid-template-columns: repeat(10, 1.5mm); gap: 0 .5mm; }
.pb-bars.mini .c i { height: calc(3.2mm * var(--v) + .2mm); margin: 0; }

/* 見出しの四角（書籍の「出る順」の札と同じ） */
.pb-rank { flex: none; width: 16mm; min-height: 16mm; background: var(--teal); color: #fff; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .8mm; padding: 1.6mm 0; }
.pb-rank small { font: 700 6.2pt/1 var(--f-disp); letter-spacing: .12em; }
.pb-rank b { font: 900 24pt/1 var(--f-disp); }
.pb-rank.sm { width: 15mm; min-height: 15mm; }
.pb-rank.sm b { font-size: 13pt; letter-spacing: .06em; }

/* ---------- 表紙（書籍の表紙と同じ方眼の紙と明朝の題字） ---------- */
.pb-cv { position: absolute; inset: 0; padding: 16mm 16mm 16mm; display: flex; flex-direction: column; align-items: center; background-color: var(--hogan);
  background-image: linear-gradient(var(--hogan-line) .2mm, transparent .2mm), linear-gradient(90deg, var(--hogan-line) .2mm, transparent .2mm); background-size: 5mm 5mm; background-position: 2.5mm 2.5mm; }
.pb-cv-tag { position: absolute; left: 0; top: 10mm; display: flex; flex-direction: column; align-items: center; background: var(--deep); color: #fff; padding: 2mm 3.4mm; font-family: var(--f-disp); line-height: 1.2; }
.pb-cv-tag span { font-size: 6.6pt; font-weight: 700; letter-spacing: .08em; }
.pb-cv-tag b { font-size: 9pt; font-weight: 900; letter-spacing: .06em; }
.pb-cv-k { margin-top: 8mm; font: 700 15pt/1 var(--f-min); letter-spacing: .5em; margin-right: -.5em; color: var(--ink); }
.pb-doc .pb-cv-t { margin-top: 4mm; font: 700 50pt/1.05 var(--f-min); letter-spacing: .06em; margin-right: -.06em; color: var(--ink); }
.pb-doc[data-size="A4"] .pb-cv-t { font-size: 58pt; }
.pb-cv-s { margin-top: 5mm; display: flex; align-items: center; gap: 3mm; width: 100%; font: 700 9.6pt var(--f-disp); color: var(--ink); letter-spacing: .06em; }
.pb-cv-s::before, .pb-cv-s::after { content: ""; flex: 1; height: .3mm; background: var(--ink); }
.pb-cv-copy { margin-top: 10mm; display: flex; flex-direction: column; align-items: center; gap: 1.6mm; }
.pb-cv-copy span { font: 700 12pt var(--f-min); letter-spacing: .1em; color: var(--ink); }
.pb-cv-copy b { font: 900 21pt/1.1 var(--f-disp); color: var(--deep); letter-spacing: .04em; }
.pb-cv-panel { margin-top: 10mm; width: 100%; background: var(--deep); color: #fff; padding: 4.4mm 5mm 4mm; border-radius: 1.6mm; }
.pb-cv-panel .h { display: flex; justify-content: space-between; align-items: baseline; padding-bottom: 1.6mm; border-bottom: .25mm solid rgba(255, 255, 255, .45); }
.pb-cv-panel .h span { font: 900 10pt var(--f-disp); letter-spacing: .1em; }
.pb-cv-panel .h small { font-size: 6.4pt; opacity: .8; }
.pb-cv-list { list-style: none; margin: 0; padding: 0; }
.pb-cv-list li { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 4mm; align-items: center; padding: 1.3mm 0; border-bottom: .2mm solid rgba(255, 255, 255, .2); }
.pb-cv-list .nm { font: 700 8.6pt var(--f-disp); overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.pb-cv-list .f { font-size: 6.4pt; opacity: .75; }
.pb-cv-list .pb-bars .c i { background: #9fd0cc; }
.pb-cv-panel .mr { font-size: 6.6pt; opacity: .8; padding-top: 1.2mm; }
.pb-cv-st { margin: 3.6mm 0 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.pb-cv-st > div { padding: 0 3mm; border-left: .25mm solid rgba(255, 255, 255, .35); }
.pb-cv-st > div:first-child { border-left: 0; padding-left: 0; }
.pb-cv-st dt { font-size: 6.4pt; opacity: .85; letter-spacing: .04em; }
.pb-cv-st dd { margin: 0; font: 900 19pt/1.2 var(--f-disp); }
.pb-cv-st dd small { font: 700 7pt var(--f-disp); margin-left: .6mm; }
.pb-cv-foot { margin-top: auto; width: 100%; display: flex; align-items: flex-end; justify-content: space-between; gap: 4mm; }
.pb-cv-foot .for { font-size: 9pt; color: var(--ink2); text-align: right; display: flex; flex-direction: column; align-items: flex-end; }
.pb-cv-foot .for span { font-size: 9pt; color: var(--ink2); }
.pb-cv-foot .for b { font: 900 15pt var(--f-disp); color: var(--ink); letter-spacing: .06em; margin-right: .3em; }
.pb-cv-foot .for small { font-size: 7pt; color: var(--ink3); }
.pb-cv-note { margin-top: 3mm; width: 100%; font-size: 6.4pt; color: var(--ink3); line-height: 1.5; }

/* ロゴ（サイトと同じ組み。字詰めは手で） */
.pb-logo { display: inline-flex; align-items: center; gap: 2.2mm; color: var(--deep); line-height: 1; }
.pb-logo b { font: 900 15pt/1 var(--f-disp); letter-spacing: -.08em; }
.pb-logo b .r { color: var(--brand-red); }
.pb-logo b .k1 { margin-left: -.04em; }
.pb-logo b .k2 { margin-left: -.1em; letter-spacing: -.12em; }
.pb-logo i { width: .35mm; height: 5.6mm; background: var(--brand-red); }
.pb-logo small { display: flex; flex-direction: column; gap: .8mm; font: 900 6.6pt/1 var(--f-disp); letter-spacing: .2em; }
.pb-logo small [lang="en"] { font: 700 6.6pt/1 "Archivo", var(--f-disp); letter-spacing: .12em; }

/* ---------- 目次 ---------- */
.pb-toch h2, .pb-ckh h2 { font-size: 18pt; }
.pb-toch p { margin-top: 1.4mm; font-size: 7pt; color: var(--ink2); padding-bottom: 2mm; border-bottom: .35mm solid var(--ink); }
.pb-tc { display: grid; grid-template-columns: 11mm minmax(0, 1fr) auto; align-items: baseline; gap: 0 2mm; padding: 1.3mm 0; border-bottom: .2mm solid var(--rule); }
.pb-tc.cp { margin-top: 3mm !important; padding-bottom: 1mm; font: 900 10pt var(--f-disp); color: var(--teal); border-bottom: .3mm solid var(--teal); }
.pb-tc.tm { font-size: 8.4pt; }
.pb-tc.tm .n { font: 900 8.6pt var(--f-disp); color: var(--teal); text-align: right; }
.pb-tc.cp .n { font-size: 8pt; letter-spacing: .04em; }
.pb-tc .t { font-weight: 700; min-width: 0; }
.pb-tc .t small { margin-left: 2.4mm; font-weight: 400; font-size: 6.6pt; color: var(--ink2); }
.pb-tc.ck .t { color: var(--teal); }
.pb-legend { margin-top: 6mm !important; }
.pb-legend h3 { font-size: 10pt; color: var(--teal); padding-bottom: 1mm; border-bottom: .2mm solid var(--rule); }
.pb-legend table { border-collapse: collapse; width: 100%; margin-top: 1mm; }
.pb-legend th, .pb-legend td { padding: 1.3mm 1.4mm; border-bottom: .2mm solid var(--rule2); text-align: left; vertical-align: middle; font-size: 7.4pt; }
.pb-legend th { white-space: nowrap; width: 1%; font-weight: 400; padding-right: 4mm; }
.pb-legend td { color: var(--ink2); }

/* ---------- 章の扉（書籍の LEVEL の扉と同じ深緑の面） ---------- */
.pb-op { padding-top: 6mm; }
.pb-door { background: var(--teal); color: #fff; padding: 9mm 9mm 7mm; }
.pb-door .p { font: 700 8pt var(--f-disp); letter-spacing: .3em; }
.pb-door .n { margin-top: 2mm; display: flex; align-items: baseline; gap: 2mm; font: 700 13pt var(--f-disp); }
.pb-door .n b { font: 900 64pt/.9 var(--f-disp); }
.pb-door h2 { margin-top: 3mm; font-size: 24pt; letter-spacing: .06em; }
.pb-door .d { margin-top: 4mm; padding-top: 3mm; border-top: .25mm solid rgba(255, 255, 255, .5); font-size: 8.4pt; line-height: 1.7; }
.pb-door .d b { font: 900 1.2em var(--f-disp); }
.pb-op-h { margin-top: 8mm; font-size: 10.5pt; color: var(--teal); padding-bottom: 1mm; border-bottom: .35mm solid var(--ink); }
.pb-op-l { list-style: none; padding: 0; margin: 0; }
.pb-op-l li { display: grid; grid-template-columns: 8mm minmax(0, 1fr) auto 22mm 8mm; align-items: center; gap: 3mm; padding: 2.2mm 0; border-bottom: .2mm solid var(--rule); }
.pb-op-l .no { font: 900 10pt var(--f-disp); color: var(--teal); text-align: right; }
.pb-op-l .t { font: 700 10pt var(--f-disp); min-width: 0; }
.pb-op-l .m { font-size: 6.8pt; color: var(--ink2); text-align: right; }
.pb-op-l li.ck { grid-template-columns: 8mm minmax(0, 1fr) 22mm 8mm; }
.pb-op-l li.ck .t { color: var(--teal); }

/* ---------- テーマ ---------- */
.pb-th { display: grid; gap: 2.4mm; padding-bottom: .6mm; }
.pb-th-h { display: flex; gap: 3.6mm; align-items: stretch; }
.pb-tt { min-width: 0; display: flex; flex-direction: column; justify-content: center; }
.pb-tt h2 { font-size: 19pt; line-height: 1.15; text-wrap: balance; }
.pb-doc[data-size="A4"] .pb-tt h2 { font-size: 21pt; }
.pb-tt .sub { margin-top: 1mm; font-size: 7.6pt; color: var(--ink2); font-weight: 700; }
.pb-stats { display: flex; flex-wrap: wrap; font-size: 7pt; color: var(--ink2); }
.pb-stats span { padding: 0 2mm; border-left: .2mm solid var(--rule); }
.pb-stats span:first-child { padding-left: 0; border-left: 0; color: var(--teal); font-weight: 700; }
.pb-stats b { color: var(--ink); font: 900 1.2em var(--f-disp); margin: 0 .1em; }
.pb-lead { background: var(--tint); padding: 2.4mm 3.4mm 2.6mm; }
.pb-lead .lh { font: 900 7.6pt var(--f-disp); color: var(--teal); letter-spacing: .1em; }
.pb-lead ul { margin: .6mm 0 0; padding-left: 1.1em; display: grid; gap: .4mm; font-size: 8.2pt; line-height: 1.5; }
.pb-lead li::marker { color: var(--teal); }
.pb-lead li.me { list-style: none; margin-left: -1.1em; margin-top: .8mm; padding-top: 1mm; border-top: .2mm solid rgba(10, 103, 107, .25); color: var(--ink); }
.pb-lead li.me b { color: var(--teal); font: 900 1.12em var(--f-disp); }

/* 問われ方の見出し（書籍の小見出しと同じ。右に札） */
.pb-how { display: flex; align-items: baseline; justify-content: space-between; gap: 3mm; margin-top: 4mm !important; padding-bottom: .6mm; border-bottom: .2mm solid var(--rule); font-size: 10.2pt; color: var(--teal); }
.pb-how i { font: 400 6.2pt/1.5 var(--f-code); font-style: normal; color: var(--teal); border: .2mm solid var(--teal2); padding: 0 .5em; white-space: nowrap; letter-spacing: 0; }
.pb-how.miss { color: var(--ans); }
.pb-how.miss i { color: var(--ink2); border-color: var(--rule); font-family: var(--f-body); }

/* 論点の行（書籍の一問一答の行と同じ：番号とチェック欄、本文、★、出典） */
.pb-pt, .pb-cz { display: grid; grid-template-columns: 8mm minmax(0, 1fr); column-gap: 2.2mm; padding: 1.6mm 0 1.5mm; border-bottom: .2mm solid var(--rule); break-inside: avoid; }
.pb-pt .n, .pb-cz .n { display: flex; flex-direction: column; align-items: flex-start; gap: .8mm; }
.pb-pt .n span, .pb-cz .n span { font: 900 9pt/1.1 var(--f-disp); color: var(--teal); }
.pb-pt .t, .pb-cz .t { font-size: 8.8pt; line-height: 1.6; }
.pb-doc[data-size="A4"] .pb-pt .t, .pb-doc[data-size="A4"] .pb-cz .t { font-size: 9.6pt; }
.pb-pt .meta { white-space: nowrap; margin-left: .6em; }
.pb-pt .m { display: flex; flex-wrap: wrap; align-items: center; gap: .4mm 2.2mm; margin-top: .4mm; }
.pb-pt .m .sub { font-size: 6.4pt; color: var(--ink2); }
.pb-pt .m .pb-src { margin-left: auto; text-align: right; }
.pb-more { font-size: 7pt; color: var(--ink2); }

/* ---------- 過去問（書籍の「過去問に挑戦」と同じ組み） ---------- */
.pb-miss, .pb-mcq { padding: 2.2mm 0 2.4mm; border-top: .35mm solid var(--ink); break-inside: avoid; }
.pb-how + .pb-miss, .pb-how + .pb-mcq { margin-top: 1.6mm !important; }
.pb-miss .h, .pb-mcq .h { display: flex; flex-wrap: wrap; align-items: center; gap: 1mm 2mm; }
.pb-mcq .nb { font: 900 10pt var(--f-disp); color: var(--teal); }
.pb-miss .src, .pb-mcq .src { font: 700 7.4pt var(--f-code); color: var(--ink); }
.pb-miss .kb, .pb-mcq .kb { font-size: 6.2pt; line-height: 1.45; padding: 0 .5em; border: .2mm solid var(--ink2); color: var(--ink2); }
.pb-miss .yr { margin-left: auto; font-size: 7pt; color: var(--teal); font-weight: 700; }
.pb-miss .yr b { font: 900 9pt var(--f-disp); margin: 0 .2em; }
.pb-miss .yr b.ng { color: var(--ink); }
.pb-mcq .th { margin-left: auto; font-size: 6.6pt; color: var(--ink2); }
.pb-miss .cs, .pb-mcq .cs { margin-top: 1.2mm; font-size: 8pt; line-height: 1.6; }
.pb-miss .stem, .pb-mcq .stem { margin-top: .8mm; font-size: 8.4pt; line-height: 1.6; }
.pb-cl { list-style: none; padding: 0; margin: 1.4mm 0 0; display: grid; gap: .6mm 3mm; font-size: 8.4pt; line-height: 1.5; }
.pb-cl.c3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.pb-cl.c2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.pb-cl li { display: flex; gap: 1.8mm; min-width: 0; }
.pb-cl .l { flex: none; font-weight: 700; }
/* あなたが選んだ選択肢（まちがい）は記号を丸で囲む。正答は下の解説に赤字で */
.pb-cl li.ng .l { display: inline-grid; place-items: center; width: 1.45em; height: 1.45em; margin: -.1em 0 -.1em -.25em; border: .25mm solid var(--ink); border-radius: 50%; line-height: 1; }
.pb-cl li.ng .v { text-decoration: line-through; text-decoration-thickness: .2mm; text-decoration-color: var(--ink3); }
.pb-miss .ex { margin-top: 2mm; padding: 1.8mm 0 .2mm 3mm; border-left: .6mm solid var(--teal2); display: grid; gap: 1mm; font-size: 7.8pt; line-height: 1.6; }
.pb-miss .ac, .pb-ma .ac { display: flex; gap: 1.8mm; font-size: 8.6pt; }
.pb-miss .k, .pb-ma .k { display: inline-block; margin-right: 1.6mm; font: 900 6.6pt/1.6 var(--f-disp); color: var(--teal); letter-spacing: .06em; }
.pb-miss .why .k { color: var(--ink2); }
.pb-miss .goro { background: color-mix(in srgb, var(--mark) 40%, transparent); padding: .8mm 2mm; }

/* ---------- 確認問題・解答 ---------- */
.pb-ckh { display: flex; gap: 3.6mm; align-items: stretch; padding-bottom: 2.4mm; border-bottom: .35mm solid var(--ink); }
.pb-ckh > div { min-width: 0; display: flex; flex-direction: column; justify-content: center; }
.pb-ckh p:not(.pb-rank) { margin-top: 1.4mm; font-size: 7.4pt; color: var(--ink2); }
.pb-cz .th { margin-top: .2mm; font-size: 6.4pt; color: var(--ink2); }
.pb-cz .t { line-height: 2; }
.pb-blank { display: inline-block; width: var(--w, 6em); height: 1.5em; vertical-align: -.45em; margin: 0 .3em; border: .25mm solid var(--ink2); }
.pb-ca, .pb-ma { padding: 1.8mm 0 1.9mm; border-bottom: .2mm solid var(--rule); break-inside: avoid; }
.pb-ma { border-top: .35mm solid var(--ink); border-bottom: 0; padding-top: 2.2mm; }
.pb-ca .h, .pb-ma .h { display: flex; align-items: baseline; gap: 2.4mm; }
.pb-ca .nb, .pb-ma .nb { font: 900 9.6pt var(--f-disp); color: var(--teal); }
.pb-ca .h .pb-key { font-size: 9pt; }
.pb-ma .h .l { font: 900 11pt var(--f-disp); }
.pb-ca .rv, .pb-ma .rv { margin-left: auto; font: 700 6.6pt var(--f-disp); color: var(--teal); letter-spacing: .04em; }
.pb-ca .full { margin-top: .6mm; font-size: 8pt; color: var(--ink2); }
.pb-ca .full .pb-src { margin-left: 2mm; }
.pb-ma .ac { margin-top: 1mm; }
.pb-ma .pt, .pb-ma .ex { margin-top: 1mm; font-size: 7.8pt; line-height: 1.6; }
.pb-ma .pb-trap { margin-top: 1.4mm; }
.pb-ma .url { margin-top: 1mm; font-size: 6.4pt; color: var(--ink3); }

/* ---------- 奥付（書籍の「ご利用にあたって」と奥付と同じ組み） ---------- */
.pb-colo { position: absolute; inset: 0; padding: 22mm 20mm 24mm; display: flex; flex-direction: column; justify-content: space-between; }
.pb-colo-n h2 { font-size: 16pt; padding-bottom: 2mm; border-bottom: .35mm solid var(--ink); }
.pb-colo-n dl { margin: 0; }
.pb-colo-n dl > div { display: grid; grid-template-columns: 20mm minmax(0, 1fr); gap: 3mm; padding: 1.8mm 0; border-bottom: .2mm solid var(--rule2); font-size: 7.6pt; line-height: 1.6; }
.pb-colo-n dt { font-weight: 700; color: var(--teal); }
.pb-colo-n dd { margin: 0; color: var(--ink2); }
.pb-colo-b { align-self: flex-end; width: 92mm; max-width: 100%; border-top: .5mm solid var(--ink); border-bottom: .2mm solid var(--ink); padding: 3.6mm 0 3mm; }
.pb-colo-b .t { font: 700 13pt var(--f-min); letter-spacing: .08em; }
.pb-colo-b .s { margin-top: .6mm; font-size: 7.4pt; color: var(--ink2); }
.pb-colo-b dl { margin: 2.4mm 0 0; display: grid; gap: .6mm; }
.pb-colo-b dl > div { display: grid; grid-template-columns: 14mm minmax(0, 1fr); gap: 2mm; font-size: 7.4pt; }
.pb-colo-b dt { color: var(--ink2); }
.pb-colo-b dd { margin: 0; }
.pb-colo-b .pb-logo { margin-top: 3.6mm; }

/* 「現在は…」「補足」（出題のあとで変わったこと）。論点の文は出題のときのまま、その下に小さく */
.pb-now { margin-top: .8mm; padding: .4mm 0 .4mm 2mm; border-left: .5mm solid var(--amber); font-size: 7pt; line-height: 1.55; color: var(--ink2); break-inside: avoid; }
.pb-now .k { display: inline-block; margin-right: 1.6mm; font: 900 6.4pt var(--f-disp); letter-spacing: .04em; color: var(--amber); background: none; padding: 0; }
.pb-now.note { border-left-color: var(--rule); }
.pb-now.note .k { color: var(--ink2); }

/* ---------- 印刷 ---------- */
@media print {
  html, body { background: #fff !important; margin: 0; padding: 0; }
  body.print-mode main { padding: 0; }
  .pb-tools { display: none !important; }
  .pb-stage { background: none; padding: 0; overflow: visible; }
  .pb-doc { display: block; padding: 0; gap: 0; zoom: 1 !important; }
  .pb-ghost { display: none !important; }
  .pb-sheet { box-shadow: none !important; break-after: page; page-break-after: always; margin: 0; }
  .pb-sheet:last-child { break-after: auto; page-break-after: auto; }
  .pb-doc.redsheet .pb-key { color: var(--ans); background: none; box-shadow: none; }
  .pb-doc.redsheet .pb-key.pb-mk { box-shadow: inset 0 -.45em 0 var(--mark); }
}
