/*
  The printable sheets drawn by sheets.js: Lista na miesiąc, Misje specjalne,
  Gdy szukasz pomysłu, Jak grać and Test wydruku.
  They reuse the sheet, header and field styles from board.css and are built at real size (mm).
  data-print="mono" on the sheet switches every colour to the black-and-white tokens.
*/

.nz-sheet[data-sheet] .nz-sheet-title {
  font-size: var(--nz-print-headline-sheet);
}

/* A peach group heading: the same look as a step reward band, but smaller. */
.nz-group-band {
  height: var(--nz-band-height-group);
  flex: none;
  padding: 0 4mm;
  border-radius: var(--nz-radius-band);
  background: var(--nz-color-group-bg);
  display: flex;
  align-items: center;
  font-family: var(--nz-font-display);
  font-size: var(--nz-print-group);
  line-height: 1;
  white-space: nowrap;
  overflow: hidden;
}

/* A line to write on by hand, with an optional small label in front ("Miesiąc ______"). */
.nz-write-line {
  display: flex;
  align-items: flex-end;
  gap: 2mm;
  min-width: 0;
}

.nz-write-label {
  flex: none;
  font-size: var(--nz-print-label);
  font-weight: var(--nz-weight-label);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  line-height: 1;
}

.nz-write-rule {
  flex: 1;
  min-width: 18mm;
  height: 5mm;
  border-bottom: var(--nz-write-line) solid var(--nz-color-rule-paper);
}

/* The bottom line of a sheet: a kind note on the left, counts to fill in on the right. */
.nz-sheet-footer {
  flex: none;
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 8mm;
  padding-top: 4mm;
  border-top: var(--nz-write-line) solid var(--nz-color-rule-paper);
  font-size: var(--nz-print-body);
  font-weight: var(--nz-weight-medium);
}

.nz-sheet-note {
  font-family: var(--nz-font-display);
  font-style: italic;
  font-size: 11pt;
}

.nz-sheet-counts {
  display: flex;
  gap: 6mm;
}

.nz-sheet-counts .nz-write-rule {
  width: 16mm;
  min-width: 0;
  flex: none;
}

/* ---------- Lista na miesiąc ---------- */
.nz-list-body {
  gap: 5mm;
  padding-top: 5mm;
  padding-bottom: 4mm;
}

.nz-list-group {
  display: flex;
  flex-direction: column;
  gap: 3mm;
}

.nz-list-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3mm 5mm;
}

/* One task: the words on the left, a square for the sticker (or a tick) on the right. */
.nz-task {
  height: var(--nz-field-height-30);
  box-sizing: border-box;
  border: var(--nz-field-border) solid var(--nz-color-field-frame);
  border-radius: var(--nz-radius-field);
  padding: 0 1mm 0 4mm;
  display: flex;
  align-items: center;
  gap: 3mm;
}

.nz-task-text {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 1mm;
}

.nz-task-name {
  font-size: var(--nz-print-task);
  font-weight: var(--nz-weight-bold);
  line-height: 1.25;
  overflow-wrap: anywhere;
}

.nz-task-idea {
  font-family: var(--nz-font-display);
  font-style: italic;
  font-size: var(--nz-print-body);
}

.nz-task-field {
  width: var(--nz-sticker-field);
  height: var(--nz-sticker-field);
  flex: none;
  box-sizing: border-box;
  border: var(--nz-field-border) dashed var(--nz-color-field-frame);
  border-radius: var(--nz-radius-field);
}

/* ---------- Misje specjalne ---------- */
.nz-missions-body {
  justify-content: flex-start;
  padding-top: 3mm;
  padding-bottom: 3mm;
}

.nz-mission {
  flex: 1;
  display: flex;
  align-items: center;
  gap: 6mm;
  border-bottom: var(--nz-write-line) solid var(--nz-color-rule-paper);
}

.nz-mission:last-child {
  border-bottom: none;
}

.nz-mission-field {
  width: var(--nz-field-width);
  height: var(--nz-field-height-30);
  flex: none;
  box-sizing: border-box;
  border: var(--nz-field-border) solid var(--nz-color-field-frame);
  border-radius: var(--nz-radius-field);
}

.nz-mission-text {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 1.2mm;
}

.nz-mission-title {
  font-family: var(--nz-font-display);
  font-size: var(--nz-print-group);
  line-height: 1.15;
}

.nz-mission-about {
  font-size: var(--nz-print-body);
  font-weight: var(--nz-weight-medium);
  line-height: 1.35;
}

.nz-mission-text > .nz-write-line:last-child {
  max-width: 90mm;
}

/* ---------- Gdy szukasz pomysłu ---------- */
.nz-ideas-body {
  gap: 6mm;
  padding-top: 6mm;
}

.nz-ideas-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 7mm 8mm;
}

.nz-idea-group {
  display: flex;
  flex-direction: column;
  gap: 3mm;
}

.nz-idea-list {
  margin: 0;
  padding: 0 0 0 4mm;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 2.2mm;
  font-size: var(--nz-print-idea);
  font-weight: var(--nz-weight-medium);
  line-height: 1.3;
}

.nz-idea-list li {
  position: relative;
  padding-left: 4mm;
}

.nz-idea-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.55em;
  width: 1.4mm;
  height: 1.4mm;
  border-radius: 50%;
  background: var(--nz-color-accent);
}

.nz-ideas-own {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 3mm;
  padding: 4mm 5mm 5mm;
  border: var(--nz-field-border) solid var(--nz-color-field-frame);
  border-radius: var(--nz-radius-field);
}

.nz-ideas-own-title {
  font-family: var(--nz-font-display);
  font-size: var(--nz-print-group);
}

.nz-ideas-own .nz-write-rule {
  height: 8mm;
}

/* ---------- Jak grać ---------- */
.nz-howto-body {
  justify-content: flex-start;
  gap: 4mm;
  padding-top: 4mm;
}

.nz-howto-steps {
  margin: 0 0 2mm;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 3mm;
}

.nz-howto-steps li {
  display: flex;
  align-items: baseline;
  gap: 5mm;
}

.nz-howto-number {
  width: 9mm;
  flex: none;
  font-family: var(--nz-font-display);
  font-style: italic;
  font-size: 24pt;
  line-height: 1;
  color: var(--nz-color-accent);
}

.nz-howto-text {
  display: flex;
  flex-direction: column;
  gap: 0.6mm;
  font-size: var(--nz-print-body);
  font-weight: var(--nz-weight-medium);
  line-height: 1.35;
}

.nz-howto-text strong {
  font-size: var(--nz-print-task);
  font-weight: var(--nz-weight-bold);
}

.nz-howto-marks {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 5mm;
  margin-bottom: 2mm;
}

.nz-howto-mark {
  display: flex;
  flex-direction: column;
  gap: 2.5mm;
}

.nz-howto-field {
  width: var(--nz-field-width);
  height: var(--nz-field-height-30);
}

.nz-howto-good {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4mm 8mm;
}

/* ---------- Test wydruku ---------- */
.nz-test-body {
  justify-content: flex-start;
  gap: 8mm;
  padding-top: 4mm;
}

.nz-test-section {
  display: flex;
  flex-direction: column;
  gap: 3mm;
}

.nz-test-title {
  margin: 0;
  font-family: var(--nz-font-display);
  font-weight: var(--nz-weight-display);
  font-size: var(--nz-print-group);
}

.nz-test-hint {
  margin: 0;
  font-size: var(--nz-print-body);
  font-weight: var(--nz-weight-medium);
  line-height: 1.35;
}

/* The 10 cm ruler: one tick per millimetre, longer ticks every 5 mm and every centimetre. */
.nz-ruler {
  position: relative;
  width: 100mm;
  height: 12mm;
  margin-left: 2mm;
  border-top: 0.3mm solid var(--nz-color-text);
}

.nz-ruler-tick {
  position: absolute;
  top: 0;
  width: 0.2mm;
  height: 2mm;
  margin-left: -0.1mm;
  background: var(--nz-color-text);
}

.nz-ruler-tick.is-half {
  height: 3.5mm;
}

.nz-ruler-tick.is-cm {
  height: 5mm;
  width: 0.3mm;
}

.nz-ruler-number {
  position: absolute;
  top: 6mm;
  left: 50%;
  transform: translateX(-50%);
  font-size: var(--nz-print-field-number);
  font-weight: var(--nz-weight-bold);
}

.nz-ruler-unit {
  position: absolute;
  top: 6mm;
  left: 103mm;
  font-size: var(--nz-print-field-number);
  font-weight: var(--nz-weight-bold);
}

/* Dashed outlines to try a label (30 x 14 mm) and a round sticker (20 mm) against. */
.nz-test-label {
  width: 30mm;
  height: 14mm;
  box-sizing: border-box;
  border: 0.3mm dashed var(--nz-color-field-frame);
  border-radius: 1mm;
}

.nz-test-dot {
  width: 20mm;
  height: 20mm;
  box-sizing: border-box;
  border: 0.3mm dashed var(--nz-color-field-frame);
  border-radius: 50%;
}

.nz-test-columns {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8mm;
}

.nz-test-list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 3mm;
  font-size: var(--nz-print-body);
  font-weight: var(--nz-weight-medium);
}

.nz-test-list li {
  display: flex;
  align-items: center;
  gap: 3mm;
}

.nz-test-box {
  width: 5mm;
  height: 5mm;
  flex: none;
  box-sizing: border-box;
  border: var(--nz-field-border) solid var(--nz-color-field-frame);
  border-radius: 1mm;
}

.nz-test-notes {
  display: flex;
  flex-direction: column;
  gap: 2mm;
}
