.sheet { width: var(--paper-width); height: var(--paper-height); margin: 0 auto 20px; padding: 20mm 15mm; background: #fff; position: relative; display: flex; flex-direction: column; box-shadow: 0 0 10px #0000001a; color: #111; overflow: hidden; }
.sheet:last-child { margin-bottom: 0; }
.sheet-header { flex-shrink: 0; margin-bottom: 20px; text-align: center; }
.sheet h3 { margin: 0; color: #2c3e50; font-size: 26px; line-height: 1.3; overflow-wrap: anywhere; }
.sheet-kicker { margin-top: 3px; color: #666; font-size: 10px; }
.pupil-fields { display: flex; justify-content: space-between; gap: 12px; margin-top: 12px; font-size: 15px; text-align: left; }
.sheet-instructions { margin: 8px 0 0; color: #444; font-size: 14px; line-height: 1.35; }
.question-grid { display: grid; min-height: 0; flex: 1; align-content: stretch; gap: 14px 25px; }
.question { min-width: 0; min-height: 0; padding: 5px 0; overflow: hidden; line-height: 1.35; }
.question-line { display: flex; align-items: flex-start; min-width: 0; gap: 5px; }
.question-number { display: none; color: #666; font-size: .8em; flex-shrink: 0; margin-top: 2px; }
.show-numbers .question-number { display: inline; }
.prompt { min-width: 0; overflow-wrap: anywhere; font-size: 18px; }
.sheet[data-level="1"] .prompt { font-size: 20px; }
.columns-3 .prompt { font-size: 16px; }
.columns-4 .prompt { font-size: 15.5px; }
.columns-5 .prompt { font-size: 14px; }
.columns-6 .prompt { font-size: 12.5px; }
.question-line::after { content: ''; align-self: flex-end; flex: 1; min-width: 10px; border-bottom: 1px dotted #aaa; margin-bottom: 2px; }
.answer { color: #111; font-size: inherit; font-weight: 700; overflow-wrap: anywhere; }
.answer-label { font-size: .85em; }
.working-space { height: 0; }
.dot-array { display: grid; width: max-content; gap: 3px; margin: 5px 0 0; }
.dot { display: block; width: 7px; height: 7px; border-radius: 50%; background: #273d4c; }
.sheet-footer { display: flex; justify-content: space-between; gap: 10px; flex-shrink: 0; margin-top: 15px; color: #666; font-size: 9px; }
.sheet-footer span { min-width: 0; overflow-wrap: anywhere; }
.about { margin-top: 20px; color: #666; font-size: 12px; }
.about a { color: #4a6baf; }
.about p { margin: 8px 0; }
.export-staging { position: absolute; left: -20000px; top: 0; }
@media (max-width: 900px) { .buttons-container { gap: 10px; } }
@media (max-width: 768px) {
  body { padding: 10px; }
  .container { padding: 15px; }
  .topbar { padding-top: 10px; }
  h1 { font-size: 27px; }
  .topbar p { font-size: 15px; }
  .grade-selection-panel { padding: 20px 15px; }
  .level-buttons { gap: 10px; padding: 5px 0; }
  .level-buttons button { min-width: 100px; padding: 12px 18px; font-size: 16px; }
  .units-container { grid-template-columns: minmax(0,1fr); }
  .difficulty-container { flex-direction: column; gap: 12px; }
  .settings-row { grid-template-columns: minmax(0,1fr); gap: 15px; }
  .buttons-container { flex-direction: column; align-items: center; }
  .btn { width: 100%; max-width: 300px; }
  .control-panel, .preview-area { padding: 15px; }
  .sheet { margin-left: 0; }
}
@media print {
  html, body { margin: 0; padding: 0; background: #fff; }
  body.page-wrapper { display: block; min-height: 0; }
  .site-header, .mobile-menu, .site-footer, .hero, .quick-start, .related-pages, .ready-made--home, .seo-section, .generator-form, .preview-panel__header { display: none !important; }
  .topbar, .seo-content, .controls, .toolbar, .status, .about, .export-staging { display: none !important; }
  .page-content, .container, .workspace, #generator, .preview-panel, .preview-area, #preview { display: block; max-width: none; margin: 0; padding: 0; overflow: visible; border: 0; border-radius: 0; box-shadow: none; }
  #generator > div:first-child { display: none !important; }
  .sheet {
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0;
    padding: 0 !important;
    overflow: visible !important;
    box-shadow: none;
    zoom: 1 !important;
    break-after: page;
    break-inside: avoid;
    page-break-after: always;
    page-break-inside: avoid;
    print-color-adjust: exact;
    -webkit-print-color-adjust: exact;
  }
  .sheet:last-child { break-after: auto; page-break-after: auto; }
  .question-grid { flex: none !important; grid-template-rows: none !important; grid-auto-rows: auto !important; }
  .question { overflow: visible !important; }
}


