chess-question-sheet { display:block; }
/* Physical page layout is shared by preview and print. Screen scaling never changes it. */
.sheet-tools { display:flex; flex-wrap:wrap; gap:.5rem 1.5rem; align-items:center; }
.sheet-tools .builder-check { display:flex; gap:.5rem; align-items:center; }
.sheet-tools label { margin:.3rem 0; }
.sheet-help { font-size:.85rem; }
#sheet-status { white-space:pre-line; }
#sheet-issues { padding-left:1.3rem; }
.sheet-viewport { width:100%; overflow:hidden; background:#e5e5e5; border-radius:6px; }
.sheet-page-wrap { position:relative; margin:12px auto; }
.sheet-page { box-sizing:border-box; width:210mm; height:297mm; padding:10mm; background:white; color:#111; font:10pt Arial,sans-serif; position:relative; transform-origin:top left; overflow:hidden; box-shadow:0 1px 7px #0003; }
.sheet-page * { box-sizing:border-box; }
.sheet-header { height:24mm; overflow:hidden; }
.sheet-page h2 { margin:0 0 2mm; font:bold 14pt Arial,sans-serif; color:#111; line-height:1.2; overflow-wrap:anywhere; }
.sheet-heading-row { display:flex; align-items:baseline; justify-content:space-between; gap:5mm; margin-bottom:2mm; }
.sheet-heading-row h2 { flex:1; min-width:0; margin:0; }
.sheet-student { flex:none; white-space:nowrap; text-align:right; font-size:9pt; }
.sheet-general { max-height:10mm; overflow:hidden; white-space:pre-wrap; overflow-wrap:anywhere; line-height:1.2; margin:0 0 1mm; }
.sheet-common { max-height:10mm; overflow:hidden; white-space:pre-wrap; overflow-wrap:anywhere; line-height:1.2; margin:0; font-size:9pt; }
.sheet-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); grid-template-rows:repeat(4,1fr); gap:3mm 4mm; height:245mm; }
.sheet-question { min-height:0; min-width:0; break-inside:avoid; position:relative; }
.sheet-number { font-weight:bold; font-size:9pt; height:4mm; }
.sheet-diagram { max-width:none; }
/* Fixed SVG widths include coordinates and the side-to-move circle. */
.sheet-diagram svg { display:block; width:100%; height:100%; font:32px Arial,sans-serif; }
.sheet-prompt { white-space:pre-wrap; overflow-wrap:anywhere; margin:0; line-height:1.2; font-size:9pt; max-height:4.5mm; overflow:hidden; }
.sheet-answer { min-height:4mm; }
.sheet-page[data-density="12"] .sheet-number { height:3.5mm; }
.sheet-page[data-density="12"] .sheet-diagram { width:49mm; height:47.38mm; }
.sheet-page[data-density="6"] .sheet-grid { grid-template-columns:repeat(2,minmax(0,1fr)); grid-template-rows:repeat(3,1fr); }
.sheet-page[data-density="6"] .sheet-diagram { width:62mm; height:59.96mm; }
.sheet-page[data-density="6"] .sheet-prompt { max-height:8mm; }
.sheet-page[data-density="6"] .sheet-answer { min-height:8mm; }
.sheet-page[data-density="4"] .sheet-grid { grid-template-columns:repeat(2,minmax(0,1fr)); grid-template-rows:repeat(2,1fr); }
.sheet-page[data-density="4"] .sheet-diagram { width:90mm; height:87.03mm; }
.sheet-page[data-density="4"] .sheet-prompt { max-height:8mm; }
.sheet-page[data-density="4"] .sheet-answer { min-height:8mm; }
.sheet-page[data-density="1"] .sheet-grid { grid-template-columns:minmax(0,1fr); grid-template-rows:1fr; }
.sheet-page[data-density="1"] .sheet-diagram { width:170mm; height:164.4mm; margin:0 auto; }
.sheet-page[data-density="1"] .sheet-prompt { max-height:12mm; }
.sheet-page[data-density="1"] .sheet-answer { min-height:12mm; }
.sheet-page .sheet-footer { margin:0; color:#111; position:absolute; bottom:5mm; left:10mm; right:10mm; text-align:right; font-size:8pt; }
.sheet-overflow { outline:2px solid #a12b20; outline-offset:1px; }
.sheet-edit { font-size:.8rem; }
.sheet-return { margin:.5rem 0; }
@page { size:A4 portrait; margin:0; }
@media print {
  html, body.sheet-host { margin:0 !important; padding:0 !important; background:white !important; min-height:0 !important; height:auto !important; overflow:visible !important; display:block !important; }
  body.sheet-host > :not(#test-app), #test-app > :not(#question-sheet), #question-sheet > :not(chess-question-sheet), chess-question-sheet > :not(.sheet-viewport) { display:none !important; }
  body.sheet-host #test-app, #question-sheet, chess-question-sheet, .sheet-viewport { display:block !important; margin:0 !important; padding:0 !important; width:auto !important; max-width:none !important; overflow:visible !important; border:0 !important; background:white !important; }
  body.sheet-host:not(.sheet-ready) #test-app { display:none !important; }
  .sheet-page-wrap { margin:0 !important; width:210mm !important; height:297mm !important; break-after:page; }
  .sheet-page-wrap:last-child { break-after:auto; }
  .sheet-page { transform:none !important; box-shadow:none; print-color-adjust:exact; -webkit-print-color-adjust:exact; }
  .sheet-edit { display:none !important; }
}

@media screen {
  .sheet-print-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 16px; margin: 20px 0; }
  .sheet-host #sheet-print { padding: 14px 32px; min-height: 52px; font: 700 20px system-ui; }
  .sheet-print-actions span { font-size: 14px; color: #617067; }
  .sheet-host .sheet-options { min-width: 0; margin: 0 0 20px; padding: 0; border: 0; border-radius: 0; background: transparent; text-align: left; }
  .sheet-options legend { margin: 0 0 12px; padding: 0; color: var(--ink, #263b35); font: 600 16px/1.4 system-ui; }
  .sheet-host .sheet-options .sheet-tools { display: grid; grid-template-columns: 160px minmax(0, 1fr); align-items: center; column-gap: 28px; row-gap: 12px; margin: 0; padding: 12px 0; border: 0; border-top: 1px solid var(--panel-border, #ccd9cc); border-bottom: 1px solid var(--panel-border, #ccd9cc); border-radius: 0; background: transparent; }
  .sheet-host .sheet-density-field { display: grid; grid-template-columns: minmax(0, 1fr); align-items: center; gap: 6px; margin: 0; padding: 0; font: 400 14px/1.5 system-ui; }
  .sheet-host .sheet-density-field select { display: block; width: 100%; min-height: 40px; margin: 0; }
  .sheet-toggles { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 20px; row-gap: 0; }
  .sheet-host .sheet-toggles .builder-check { display: flex; align-items: center; gap: 10px; min-height: 40px; margin: 0; padding: 0; border: 0; border-radius: 0; background: transparent; color: var(--ink, #263b35); font: 400 14px/1.4 system-ui; cursor: pointer; }
  .sheet-host .sheet-toggles input[type=checkbox] { flex: 0 0 18px; width: 18px; height: 18px; margin: 0; accent-color: var(--test-accent, #276853); }
  .sheet-toggles span { min-width: 0; text-align: left; }
  @media (max-width: 600px) {
    .sheet-host .sheet-options .sheet-tools { grid-template-columns: minmax(0, 1fr); gap: 8px; }
    .sheet-host .sheet-density-field { grid-template-columns: minmax(0, 1fr) 88px; gap: 12px; }
    .sheet-toggles { column-gap: 12px; }
  }
}
