/*
 * 2級模擬試験UI
 *
 * サイト共通の --bg / --surface / --text / --muted / --accent と
 * :root.dark をテーマの正本とし、模試固有の役割トークンだけを body 配下に置く。
 * OSの配色設定では上書きせず、保存済みテーマと表示結果を常に一致させる。
 */
body.grade2-mock-release {
  color-scheme: light;
  --exam-session-css-ready: 1;
  --exam-page: var(--bg, #eef3fb);
  --exam-surface: var(--surface, #ffffff);
  --exam-surface-subtle: color-mix(in srgb, var(--surface, #ffffff) 86%, var(--bg, #eef3fb) 14%);
  --exam-text: var(--text, #0f1f36);
  --exam-muted: var(--muted, #475569);
  --exam-grid: var(--table-grid, #708197);
  --exam-control-border: var(--control-border, #64748b);
  --exam-accent: var(--accent, #2c6cf2);
  --exam-accent-strong: #174b91;
  --exam-on-accent: #ffffff;
  --exam-focus: #075ea8;
  --exam-success: #13733a;
  --exam-danger: #a61b12;
  --exam-warning: #805000;
  --exam-dialog-backdrop: rgb(7 15 28 / .76);
  font-family: var(--font-body, -apple-system, BlinkMacSystemFont, "Segoe UI", "Yu Gothic UI", "Yu Gothic", Meiryo, sans-serif);
  color: var(--exam-text);
  background: var(--exam-page);
  line-height: 1.7;
}

:root.dark body.grade2-mock-release {
  color-scheme: dark;
  --exam-page: var(--bg, #0d1522);
  --exam-surface: var(--surface, #121c2b);
  --exam-surface-subtle: #19263a;
  --exam-text: var(--text, #e2ebff);
  --exam-muted: #b9c8e2;
  --exam-grid: var(--table-grid, #6079a2);
  --exam-control-border: var(--control-border, #7f91ad);
  --exam-accent: var(--accent, #6fa6ff);
  --exam-accent-strong: #a9cbff;
  --exam-on-accent: #102238;
  --exam-focus: #9dccff;
  --exam-success: #6ee7a1;
  --exam-danger: #ff9a90;
  --exam-warning: #ffd080;
  --exam-dialog-backdrop: rgb(1 5 12 / .84);
}

.grade2-mock-release *,
.grade2-mock-release *::before,
.grade2-mock-release *::after { box-sizing: border-box; }
.grade2-mock-release button,
.grade2-mock-release input,
.grade2-mock-release select { font: inherit; }
.grade2-mock-release button { min-height: 44px; }
.grade2-mock-release [hidden] { display: none !important; }

.grade2-mock-release .exam-shell { width: min(100% - 1.5rem, 78rem); margin: 0 auto; padding: 1rem 0 3rem; }
.grade2-mock-release .exam-hero,
.grade2-mock-release .exam-panel {
  margin: 0 0 1rem;
  padding: clamp(1rem, 3vw, 1.75rem);
  border: 1px solid var(--exam-grid);
  border-radius: 1rem;
  background: var(--exam-surface);
  color: var(--exam-text);
}
.grade2-mock-release .exam-hero { background: linear-gradient(135deg, color-mix(in srgb, var(--exam-accent) 13%, var(--exam-surface)), var(--exam-surface)); }
.grade2-mock-release .exam-eyebrow { margin: 0 0 .25rem; color: var(--exam-accent-strong); font-weight: 800; letter-spacing: .08em; }
.grade2-mock-release .exam-hero h1,
.grade2-mock-release .exam-panel h2,
.grade2-mock-release .exam-panel h3,
.grade2-mock-release .exam-panel h4 { line-height: 1.35; }
.grade2-mock-release .exam-hero h1 { margin: 0 0 .5rem; font-size: clamp(1.55rem, 5vw, 2.35rem); }
.grade2-mock-release .exam-hero p:last-child { margin-bottom: 0; }

.grade2-mock-release .exam-notice,
.grade2-mock-release .exam-warning,
.grade2-mock-release .exam-error {
  padding: .75rem 1rem;
  border-radius: .65rem;
}
.grade2-mock-release .exam-notice { border: 1px solid color-mix(in srgb, var(--exam-accent) 58%, var(--exam-grid)); background: color-mix(in srgb, var(--exam-accent) 8%, var(--exam-surface)); }
.grade2-mock-release .exam-warning { border: 2px solid var(--exam-warning); background: color-mix(in srgb, var(--exam-warning) 9%, var(--exam-surface)); }
.grade2-mock-release .exam-error { border: 2px solid var(--exam-danger); }

.grade2-mock-release .exam-actions { display: flex; flex-wrap: wrap; gap: .65rem; margin-top: 1.25rem; }
.grade2-mock-release .exam-button {
  padding: .65rem 1rem;
  border: 2px solid var(--exam-control-border);
  border-radius: .65rem;
  background: var(--exam-surface);
  color: var(--exam-text);
  font-weight: 750;
  cursor: pointer;
}
.grade2-mock-release .exam-button--primary { border-color: var(--exam-accent); background: var(--exam-accent); color: var(--exam-on-accent); }
.grade2-mock-release .exam-button--danger { border-color: var(--exam-danger); color: var(--exam-danger); }
.grade2-mock-release .exam-button:hover:not(:disabled) { background: color-mix(in srgb, var(--exam-accent) 9%, var(--exam-surface)); }
.grade2-mock-release .exam-button--primary:hover:not(:disabled) { background: color-mix(in srgb, var(--exam-accent) 88%, var(--exam-text) 12%); color: var(--exam-on-accent); }
.grade2-mock-release .exam-button:disabled {
  border-color: var(--control-disabled-border, var(--exam-grid));
  background: var(--control-disabled-bg, var(--exam-page));
  color: var(--control-disabled-fg, var(--exam-muted));
  cursor: not-allowed;
  opacity: 1;
}
.grade2-mock-release .exam-button:focus-visible,
.grade2-mock-release .exam-section-tab:focus-visible,
.grade2-mock-release .exam-review-flag:focus-visible,
.grade2-mock-release .exam-review-dialog button:focus-visible,
.grade2-mock-release .exam-review-reminder button:focus-visible,
.grade2-mock-release .exam-table-scroll:focus-visible,
.grade2-mock-release .exam-journal-scroll:focus-visible,
.grade2-mock-release .calculation-table-scroll:focus-visible {
  outline: 3px solid var(--exam-focus);
  outline-offset: 3px;
}

.grade2-mock-release .exam-utility {
  position: sticky;
  top: 4.5rem;
  z-index: 20;
  margin: 0 0 1rem;
  padding: .75rem;
  border: 1px solid var(--exam-grid);
  border-radius: .8rem;
  background: var(--exam-surface);
}

.grade2-mock-release .exam-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  margin-bottom: 1rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid var(--exam-grid);
}
.grade2-mock-release .exam-utility .exam-toolbar { margin-bottom: .45rem; padding-bottom: .55rem; }
.grade2-mock-release .exam-toolbar h2 { flex: 1 1 20rem; margin: 0; }
.grade2-mock-release .exam-timer {
  min-width: 11rem;
  margin: 0;
  padding: .5rem .75rem;
  border: 2px solid var(--exam-accent);
  border-radius: .65rem;
  text-align: center;
  font-size: 1.15rem;
  font-weight: 850;
  font-variant-numeric: tabular-nums;
}
.grade2-mock-release .exam-timer.is-warning { border-color: var(--exam-warning); color: var(--exam-warning); }
.grade2-mock-release .exam-timer.is-urgent { border-color: var(--exam-danger); color: var(--exam-danger); }

.grade2-mock-release .exam-progress-summary {
  margin: 0;
  color: var(--exam-muted);
  font-size: .95rem;
  font-weight: 750;
  font-variant-numeric: tabular-nums;
}

/* 6大問を常に一覧できるグリッド。横スクロールへ依存しない。 */
.grade2-mock-release .exam-section-nav {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: .5rem;
  margin: 1rem 0;
  padding: .25rem .1rem .5rem;
  overflow: visible;
}
.grade2-mock-release .exam-utility .exam-section-nav { margin: .55rem 0 0; padding-bottom: 0; }
.grade2-mock-release .exam-section-tab {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: .15rem;
  min-width: 0;
  padding: .55rem .45rem;
  border: 2px solid var(--exam-control-border);
  border-radius: .65rem;
  background: var(--exam-surface-subtle);
  color: var(--exam-text);
  font-weight: 750;
  line-height: 1.35;
  overflow-wrap: anywhere;
  cursor: pointer;
}
.grade2-mock-release .exam-section-tab__label,
.grade2-mock-release .exam-section-tab__status { display: block; }
.grade2-mock-release .exam-section-tab__status { color: var(--exam-muted); font-size: .78rem; font-weight: 700; font-variant-numeric: tabular-nums; }
.grade2-mock-release .exam-section-tab[aria-current="page"] {
  border-color: var(--exam-accent);
  background: color-mix(in srgb, var(--exam-accent) 14%, var(--exam-surface));
  color: var(--exam-accent-strong);
}
.grade2-mock-release .exam-section-tab[aria-current="page"] .exam-section-tab__status { color: var(--exam-accent-strong); }

.grade2-mock-release .exam-section-header { margin: 1.25rem 0; }
.grade2-mock-release .exam-section-title-row { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem; }
.grade2-mock-release .exam-section-header h2 { margin: 0; scroll-margin-top: 20rem; }
.grade2-mock-release .exam-section-header p { margin: 0; color: var(--exam-muted); }
.grade2-mock-release .exam-review-flag { min-width: 13rem; }
.grade2-mock-release .exam-review-flag[aria-pressed="true"] {
  border-color: var(--exam-warning);
  background: color-mix(in srgb, var(--exam-warning) 12%, var(--exam-surface));
  color: var(--exam-warning);
}
.grade2-mock-release .exam-review-reminder {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin: 1rem 0;
  padding: .75rem 1rem;
  border: 2px solid var(--exam-warning);
  border-radius: .7rem;
  background: color-mix(in srgb, var(--exam-warning) 10%, var(--exam-surface));
  color: var(--exam-warning);
}
.grade2-mock-release .exam-review-reminder p { margin: 0; font-weight: 750; }

.grade2-mock-release .exam-review-dialog:not([open]) { display: none; }
.grade2-mock-release .exam-review-dialog {
  width: min(70rem, calc(100% - 2rem));
  max-height: calc(100dvh - 2rem);
  padding: 0;
  border: 2px solid var(--exam-grid);
  border-radius: 1rem;
  background: var(--exam-surface);
  color: var(--exam-text);
  overflow: auto;
}
.grade2-mock-release .exam-review-dialog::backdrop { background: var(--exam-dialog-backdrop); }
.grade2-mock-release .exam-review-dialog__panel { padding: clamp(1rem, 3vw, 1.5rem); }
.grade2-mock-release .exam-review-dialog__header { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem; }
.grade2-mock-release .exam-review-dialog__header h2,
.grade2-mock-release .exam-review-dialog__time { margin: 0; }
.grade2-mock-release .exam-review-dialog__time { color: var(--exam-warning); font-weight: 800; font-variant-numeric: tabular-nums; }
.grade2-mock-release .exam-review-dialog__summary {
  padding: .75rem 1rem;
  border: 1px solid var(--exam-grid);
  border-radius: .65rem;
  background: var(--exam-surface-subtle);
  font-weight: 800;
  font-variant-numeric: tabular-nums;
}
.grade2-mock-release .exam-review-list { display: grid; gap: .5rem; margin: 1rem 0; padding: 0; list-style: none; }
.grade2-mock-release .exam-review-row {
  display: grid;
  grid-template-columns: minmax(7.5rem, .7fr) minmax(16rem, 2fr) minmax(10rem, auto);
  align-items: center;
  gap: .75rem;
  padding: .65rem;
  border: 1px solid var(--exam-grid);
  border-radius: .6rem;
  background: var(--exam-surface-subtle);
}
.grade2-mock-release .exam-review-row__status { color: var(--exam-muted); }
.grade2-mock-release .exam-review-jump { width: 100%; }
.grade2-mock-release .exam-review-dialog__actions { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .75rem; margin-top: 1rem; }
.grade2-mock-release .exam-problem-card,
.grade2-mock-release .exam-result-card {
  margin: 1rem 0;
  padding: clamp(.85rem, 2vw, 1.25rem);
  border: 1px solid var(--exam-grid);
  border-radius: .8rem;
  background: var(--exam-surface-subtle);
  color: var(--exam-text);
}
.grade2-mock-release .exam-problem-card h3,
.grade2-mock-release .exam-result-card h4 { margin-top: 0; }
.grade2-mock-release .exam-prompt { white-space: pre-line; }
.grade2-mock-release .exam-journal-scroll { position: relative; max-width: 100%; overflow-x: hidden; }
.grade2-mock-release .exam-journal-scroll[data-overflow="true"] { overflow-x: auto; overscroll-behavior-inline: contain; }
.grade2-mock-release .exam-journal-scroll .visually-hidden { top: 0 !important; left: 0 !important; }

/*
 * 資料表はPCでは固定レイアウトで横幅内に収める。
 * 実際にあふれた場合だけJSが data-overflow="true" と操作説明を付ける。
 */
.grade2-mock-release .exam-scroll-hint,
.grade2-mock-release .calculation-scroll-hint { margin: .25rem 0 .4rem; color: var(--exam-muted); font-size: .9rem; }
.grade2-mock-release .exam-scroll-hint:not([hidden]),
.grade2-mock-release .calculation-scroll-hint:not([hidden]) { display: block; }
.grade2-mock-release .exam-table-scroll,
.grade2-mock-release .calculation-table-scroll {
  max-width: 100%;
  overflow-x: auto;
  border: 1px solid var(--exam-grid);
  border-radius: .65rem;
  background: var(--exam-surface);
}
.grade2-mock-release .exam-table-scroll { container-type: inline-size; }
.grade2-mock-release .exam-table-scroll:not([data-overflow="true"]),
.grade2-mock-release .calculation-table-scroll:not([data-overflow="true"]) { overflow-x: clip; }
.grade2-mock-release .exam-responsive-table {
  width: 100%;
  min-width: 0;
  table-layout: fixed;
  border-collapse: collapse;
  color: var(--exam-text);
  font-variant-numeric: tabular-nums;
}
.grade2-mock-release .exam-responsive-table caption { padding: .75rem; text-align: left; font-weight: 800; }
.grade2-mock-release .exam-responsive-table th,
.grade2-mock-release .exam-responsive-table td {
  min-width: 0;
  padding: .58rem .5rem;
  border-top: 1px solid var(--exam-grid);
  border-right: 1px solid var(--exam-grid);
  overflow-wrap: anywhere;
  vertical-align: middle;
}
.grade2-mock-release .exam-responsive-table th:last-child,
.grade2-mock-release .exam-responsive-table td:last-child { border-right: 0; }
.grade2-mock-release .exam-responsive-table thead th { background: color-mix(in srgb, var(--exam-accent) 12%, var(--exam-surface)); text-align: center; }
.grade2-mock-release .exam-responsive-table tbody th { background: color-mix(in srgb, var(--exam-accent) 6%, var(--exam-surface)); text-align: left; }
.grade2-mock-release .exam-responsive-table tbody td { text-align: right; }
.grade2-mock-release .exam-responsive-table .calculation-answer-cell { background: color-mix(in srgb, var(--exam-accent) 7%, var(--exam-surface)); }

/* 列数別のPC密度。12列/7列/6列の各資料を1280px内へ収める。 */
.grade2-mock-release .exam-responsive-table[data-column-count="12"] { font-size: .875rem; line-height: 1.4; }
.grade2-mock-release .exam-responsive-table[data-column-count="12"] th,
.grade2-mock-release .exam-responsive-table[data-column-count="12"] td { padding: .42rem .28rem; font-size: inherit; }
.grade2-mock-release .exam-responsive-table[data-column-count="7"] { font-size: .88rem; line-height: 1.4; }
.grade2-mock-release .exam-responsive-table[data-column-count="7"] th,
.grade2-mock-release .exam-responsive-table[data-column-count="7"] td { padding: .48rem .36rem; }
.grade2-mock-release .exam-responsive-table[data-column-count="6"] th,
.grade2-mock-release .exam-responsive-table[data-column-count="6"] td { padding: .52rem .42rem; }

.grade2-mock-release .exam-responsive-table[data-column-count="2"] col:first-child { width: 62%; }
.grade2-mock-release .exam-responsive-table[data-column-count="3"] col:first-child { width: 42%; }
.grade2-mock-release .exam-responsive-table[data-column-count="4"] col:first-child { width: 34%; }
.grade2-mock-release .exam-responsive-table[data-column-count="5"] col:first-child { width: 28%; }
.grade2-mock-release .exam-responsive-table[data-column-count="6"] col:first-child { width: 26%; }
.grade2-mock-release .exam-responsive-table[data-column-count="7"] col[data-column-id="case"] { width: 8%; }
.grade2-mock-release .exam-responsive-table[data-column-count="7"] col[data-column-id="condition"] { width: 15%; }
.grade2-mock-release .exam-responsive-table[data-column-count="7"] col[data-column-id="initial"],
.grade2-mock-release .exam-responsive-table[data-column-count="7"] col[data-column-id="year_end"] { width: 18%; }
.grade2-mock-release .exam-responsive-table[data-column-count="7"] col[data-column-id="fx_amount"] { width: 13%; }
.grade2-mock-release .exam-responsive-table[data-column-count="7"] col[data-column-id="fx_direction"] { width: 11%; }
.grade2-mock-release .exam-responsive-table[data-column-count="7"] col[data-column-id="settlement"] { width: 17%; }
.grade2-mock-release .exam-responsive-table[data-column-count="12"] col[data-column-id="contract"] { width: 8%; }
.grade2-mock-release .exam-responsive-table[data-column-count="12"] col[data-column-id="period"] { width: 16%; }

.grade2-mock-release .exam-responsive-table .calculation-input-wrap {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: .25rem;
  width: 100%;
}
.grade2-mock-release .exam-responsive-table .calculation-input {
  width: 100%;
  min-width: 0;
  max-width: 100%;
  min-height: 44px;
  padding: .48rem .38rem;
  border: 2px solid var(--exam-control-border);
  background: var(--exam-surface);
  color: var(--exam-text);
}
.grade2-mock-release .exam-responsive-table select.calculation-input { min-width: 0; }
.grade2-mock-release .exam-responsive-table .calculation-input:focus-visible { outline-color: var(--exam-focus); }
.grade2-mock-release .exam-responsive-table .calculation-input[aria-invalid="true"],
.grade2-mock-release .exam-responsive-table .calculation-input[data-result="wrong"] { border-color: var(--exam-danger); }
.grade2-mock-release .exam-responsive-table .calculation-input[data-result="correct"] { border-color: var(--exam-success); }
.grade2-mock-release .exam-responsive-table .calculation-unit { color: var(--exam-muted); }

/* 仕訳解答欄も同じコントラスト役割へ揃える。 */
.grade2-mock-release .journal-entry-table th,
.grade2-mock-release .journal-entry-table td { border-color: var(--exam-grid); }
.grade2-mock-release .journal-entry-table th { background: color-mix(in srgb, var(--exam-accent) 12%, var(--exam-surface)); }
.grade2-mock-release .journal-entry-table select,
.grade2-mock-release .journal-entry-table input {
  border: 2px solid var(--exam-control-border);
  background: var(--exam-surface);
  color: var(--exam-text);
}
.grade2-mock-release .journal-entry-table select:focus-visible,
.grade2-mock-release .journal-entry-table input:focus-visible { outline-color: var(--exam-focus); }
.grade2-mock-release .journal-entry-table [aria-invalid="true"] { border-color: var(--exam-danger); }

.grade2-mock-release .is-paused #sectionRoot { opacity: .72; }
.grade2-mock-release .is-paused #sectionRoot::before { content: "一時停止中：解答欄はロックされています"; display: block; margin-bottom: .75rem; padding: .65rem; border: 2px solid var(--exam-warning); border-radius: .65rem; color: var(--exam-warning); font-weight: 800; text-align: center; }

.grade2-mock-release .exam-result-score { margin: .5rem 0; color: var(--exam-accent-strong); font-size: clamp(1.5rem, 5vw, 2.3rem); font-weight: 900; font-variant-numeric: tabular-nums; }
.grade2-mock-release .exam-result-section { margin: 1.5rem 0; padding-top: .25rem; border-top: 3px solid var(--exam-accent); }
.grade2-mock-release .result-status { padding: .55rem .75rem; border-left: .35rem solid var(--exam-grid); background: var(--exam-surface); }
.grade2-mock-release .result-status.is-correct { border-color: var(--exam-success); }
.grade2-mock-release .result-status.is-review { border-color: var(--exam-warning); }

.grade2-mock-release .visually-hidden { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important; border: 0 !important; }

/*
 * 計算答案表の再配置は calculation-table.css のコンテナクエリを正本とします。
 * ここでは資料閲覧専用の静的表だけを、同じ列数区分・同じ閾値で再配置します。
 */
@container (max-width: 67rem) {
  .grade2-mock-release .exam-resource-table[data-layout="wide"] {
    display: block;
    font-size: 1rem;
    line-height: 1.55;
  }
  .grade2-mock-release .exam-resource-table[data-layout="wide"] caption { display: block; }
  .grade2-mock-release .exam-resource-table[data-layout="wide"] colgroup { display: none; }
  .grade2-mock-release .exam-resource-table[data-layout="wide"] thead {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
  }
  .grade2-mock-release .exam-resource-table[data-layout="wide"] tbody {
    display: grid;
    gap: .75rem;
    padding: .75rem;
  }
  .grade2-mock-release .exam-resource-table[data-layout="wide"] tbody tr {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    overflow: hidden;
    border: 1px solid var(--exam-grid);
    border-radius: .55rem;
    background: var(--exam-surface);
  }
  .grade2-mock-release .exam-resource-table[data-layout="wide"] tbody tr > * {
    min-width: 0;
    border-top: 1px solid var(--exam-grid);
    border-right: 1px solid var(--exam-grid);
  }
  .grade2-mock-release .exam-resource-table[data-layout="wide"] tbody tr > :nth-child(3n + 1):not(:first-child) { border-right: 0; }
  .grade2-mock-release .exam-resource-table[data-layout="wide"] tbody th[data-column-index="0"] {
    grid-column: 1 / -1;
    border-top: 0;
    border-right: 0;
  }
  .grade2-mock-release .exam-resource-table[data-layout="wide"] tbody td::before {
    display: block;
    margin-bottom: .35rem;
    color: var(--exam-muted);
    content: attr(data-column-label);
    font-size: .75rem;
    font-weight: 750;
    line-height: 1.35;
    text-align: left;
  }
}

/*
 * 本試験を想定した低いPC画面では、情報を省略せず固定領域だけを2段へ圧縮する。
 * 1段目に試験名・残り時間・全体進捗、2段目に6大問を置き、本文の可視高を確保する。
 */
@media (min-width: 1025px) and (max-height: 800px) {
  body.grade2-mock-release { --exam-low-height-sticky-offset: 13rem; }

  .grade2-mock-release .exam-utility {
    display: grid;
    grid-template-areas:
      "toolbar progress"
      "navigation navigation";
    grid-template-columns: minmax(0, 1fr) auto;
    gap: .3rem .75rem;
    padding: .4rem .5rem;
  }

  .grade2-mock-release .exam-utility .exam-toolbar {
    grid-area: toolbar;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: .5rem;
    margin: 0;
    padding: 0;
    border-bottom: 0;
  }

  .grade2-mock-release .exam-utility .exam-toolbar h2 {
    min-width: 0;
    font-size: 1.05rem;
    line-height: 1.25;
    white-space: nowrap;
  }

  .grade2-mock-release .exam-utility .exam-timer {
    min-width: 9.5rem;
    padding: .2rem .5rem;
    font-size: 1rem;
    line-height: 1.35;
  }

  .grade2-mock-release .exam-utility .exam-progress-summary {
    grid-area: progress;
    align-self: center;
    font-size: .82rem;
    line-height: 1.35;
    white-space: nowrap;
  }

  .grade2-mock-release .exam-utility .exam-section-nav {
    grid-area: navigation;
    gap: .3rem;
    margin: 0;
    padding: 0;
  }

  .grade2-mock-release .exam-utility .exam-section-tab {
    min-height: 44px;
    gap: 0;
    padding: .2rem .3rem;
    line-height: 1.15;
  }

  .grade2-mock-release .exam-utility .exam-section-tab__label { font-size: .82rem; }
  .grade2-mock-release .exam-utility .exam-section-tab__status { font-size: .7rem; line-height: 1.2; }

  .grade2-mock-release .exam-section-header h2,
  .grade2-mock-release .exam-problem-card h3,
  .grade2-mock-release .exam-responsive-table thead,
  .grade2-mock-release .calculation-table thead,
  .grade2-mock-release .journal-entry-table thead,
  .grade2-mock-release .calculation-input,
  .grade2-mock-release .journal-entry-table input,
  .grade2-mock-release .journal-entry-table select {
    scroll-margin-top: var(--exam-low-height-sticky-offset);
  }
}

@media (max-width: 1080px) {
  .grade2-mock-release .exam-utility { position: static; }
  .grade2-mock-release .exam-section-header h2 { scroll-margin-top: 8rem; }
}

/* 1025〜1080pxはPCの拡大表示帯として、低い画面に限り固定領域を維持する。 */
@media (min-width: 1025px) and (max-width: 1080px) and (max-height: 800px) {
  :root { scroll-padding-top: 13rem; }
  body.grade2-mock-release { --exam-low-height-sticky-offset: 0px; }
  .grade2-mock-release .exam-utility { position: sticky; }
  .grade2-mock-release .exam-section-header h2 { scroll-margin-top: var(--exam-low-height-sticky-offset); }
}

@media (max-width: 800px) {
  .grade2-mock-release .exam-utility { padding: .6rem; }
  .grade2-mock-release .exam-section-nav { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .grade2-mock-release .exam-section-header h2 { scroll-margin-top: 8rem; }
  .grade2-mock-release .exam-review-row { grid-template-columns: 1fr; }
  .grade2-mock-release .exam-review-jump { justify-self: stretch; }
}

@media (max-width: 640px) {
  .grade2-mock-release .exam-shell { width: min(100% - .75rem, 78rem); padding-top: .4rem; }
  .grade2-mock-release .exam-hero,
  .grade2-mock-release .exam-panel { border-radius: .75rem; }
  .grade2-mock-release .exam-toolbar { align-items: stretch; }
  .grade2-mock-release .exam-timer { width: 100%; }
  .grade2-mock-release .exam-actions .exam-button { flex: 1 1 100%; }
  .grade2-mock-release .exam-review-reminder { align-items: stretch; flex-direction: column; }
  .grade2-mock-release .exam-review-flag { width: 100%; }
  .grade2-mock-release .exam-review-dialog { width: calc(100% - .75rem); max-height: calc(100dvh - .75rem); border-radius: .75rem; }
  .grade2-mock-release .exam-review-dialog__actions .exam-button { flex: 1 1 100%; }
}

@media (max-width: 480px) {
  .grade2-mock-release .exam-section-nav { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@container (max-width: 47rem) {
  .grade2-mock-release .exam-resource-table:is([data-layout="medium"], [data-layout="wide"]) {
    display: block;
    font-size: 1rem;
    line-height: 1.55;
  }
  .grade2-mock-release .exam-resource-table:is([data-layout="medium"], [data-layout="wide"]) caption { display: block; }
  .grade2-mock-release .exam-resource-table:is([data-layout="medium"], [data-layout="wide"]) colgroup { display: none; }
  .grade2-mock-release .exam-resource-table[data-layout="medium"] thead {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
  }
  .grade2-mock-release .exam-resource-table[data-layout="medium"] tbody {
    display: grid;
    gap: .75rem;
    padding: .75rem;
  }
  .grade2-mock-release .exam-resource-table:is([data-layout="medium"], [data-layout="wide"]) tbody tr {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    overflow: hidden;
    border: 1px solid var(--exam-grid);
    border-radius: .55rem;
    background: var(--exam-surface);
  }
  .grade2-mock-release .exam-resource-table:is([data-layout="medium"], [data-layout="wide"]) tbody tr > * {
    min-width: 0;
    border-top: 1px solid var(--exam-grid);
    border-right: 1px solid var(--exam-grid);
  }
  .grade2-mock-release .exam-resource-table[data-layout="wide"] tbody tr > :nth-child(3n + 1):not(:first-child) {
    border-right: 1px solid var(--exam-grid);
  }
  .grade2-mock-release .exam-resource-table:is([data-layout="medium"], [data-layout="wide"]) tbody tr > :nth-child(odd):not(:first-child) { border-right: 0; }
  .grade2-mock-release .exam-resource-table[data-layout="medium"] tbody th[data-column-index="0"] {
    grid-column: 1 / -1;
    border-top: 0;
    border-right: 0;
  }
  .grade2-mock-release .exam-resource-table[data-layout="medium"] tbody td::before {
    display: block;
    margin-bottom: .35rem;
    color: var(--exam-muted);
    content: attr(data-column-label);
    font-size: .75rem;
    font-weight: 750;
    line-height: 1.35;
    text-align: left;
  }
}

@container (max-width: 30rem) {
  .grade2-mock-release .exam-resource-table:is([data-layout="compact"], [data-layout="medium"], [data-layout="wide"]) {
    display: block;
    font-size: 1rem;
    line-height: 1.55;
  }
  .grade2-mock-release .exam-resource-table:is([data-layout="compact"], [data-layout="medium"], [data-layout="wide"]) caption { display: block; }
  .grade2-mock-release .exam-resource-table[data-layout="compact"] colgroup { display: none; }
  .grade2-mock-release .exam-resource-table[data-layout="compact"] thead {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
  }
  .grade2-mock-release .exam-resource-table:is([data-layout="compact"], [data-layout="medium"], [data-layout="wide"]) tbody {
    display: grid;
    gap: .75rem;
    padding: .6rem;
  }
  .grade2-mock-release .exam-resource-table:is([data-layout="compact"], [data-layout="medium"], [data-layout="wide"]) tbody tr {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    overflow: hidden;
    border: 1px solid var(--exam-grid);
    border-radius: .55rem;
    background: var(--exam-surface);
  }
  .grade2-mock-release .exam-resource-table:is([data-layout="compact"], [data-layout="medium"], [data-layout="wide"]) tbody tr > * {
    min-width: 0;
    border-top: 1px solid var(--exam-grid);
    border-right: 0;
  }
  .grade2-mock-release .exam-resource-table[data-layout="wide"] tbody tr > :nth-child(3n + 1):not(:first-child) {
    border-right: 0;
  }
  .grade2-mock-release .exam-resource-table:is([data-layout="compact"], [data-layout="medium"], [data-layout="wide"]) tbody th[data-column-index="0"] {
    grid-column: 1;
    border-top: 0;
  }
  .grade2-mock-release .exam-resource-table[data-layout="compact"] tbody td::before {
    display: block;
    margin-bottom: .35rem;
    color: var(--exam-muted);
    content: attr(data-column-label);
    font-size: .75rem;
    font-weight: 750;
    line-height: 1.35;
    text-align: left;
  }
}

@media (prefers-reduced-motion: reduce) {
  .grade2-mock-release *,
  .grade2-mock-release *::before,
  .grade2-mock-release *::after { scroll-behavior: auto !important; transition: none !important; animation: none !important; }
}

@media (forced-colors: active) {
  .grade2-mock-release .exam-panel,
  .grade2-mock-release .exam-hero,
  .grade2-mock-release .exam-button,
  .grade2-mock-release .exam-section-tab,
  .grade2-mock-release .exam-utility,
  .grade2-mock-release .exam-review-reminder,
  .grade2-mock-release .exam-review-dialog,
  .grade2-mock-release .exam-review-row,
  .grade2-mock-release .exam-table-scroll,
  .grade2-mock-release .calculation-table-scroll,
  .grade2-mock-release .exam-responsive-table th,
  .grade2-mock-release .exam-responsive-table td { border-color: CanvasText; }
  .grade2-mock-release .exam-section-tab[aria-current="page"] { outline: 3px solid Highlight; }
  .grade2-mock-release .exam-review-flag[aria-pressed="true"] { outline: 2px solid Highlight; outline-offset: 2px; }
}
