/*
  The printable sheets drawn by sheets.js: Lista na miesiąc, Misje specjalne,
  Gdy szukasz pomysłu and Jak grać.
  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);
}

/* Sheets can have a two-line subtitle: smaller gaps keep air between it and the first row. */
.nz-sheet[data-sheet] .nz-sheet-person {
  margin-top: 4mm;
}

.nz-sheet[data-sheet] .nz-sheet-subtitle {
  margin-top: 2mm;
  line-height: 1.35;
}

/* 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 group without a name: a line on the band to write the name on. */
.nz-group-band.is-empty .nz-write-line {
  flex: 1;
  margin-bottom: 1.5mm;
}

/* The usual line colour is too pale on the band. */
.nz-group-band.is-empty .nz-write-rule {
  border-bottom-color: var(--nz-color-field-frame);
}

/* 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: 4mm;
  padding-top: 4mm;
  padding-bottom: 3mm;
}

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

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

/* One task: the words on the left, a space for one 30 × 14 mm label (or a tick) on the right. */
.nz-task {
  height: var(--nz-list-task-height);
  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-list-field-width);
  height: var(--nz-list-field-height);
  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;
}

/* The same size as the spaces on the list: fits a 30 × 14 mm label, so 10 rows fit the sheet. */
.nz-mission-field {
  width: var(--nz-list-field-width);
  height: var(--nz-list-field-height);
  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;
  /* Never taller than the page: the lines in "your ideas" stop at its edge. */
  min-height: 0;
}

.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);
}

/* An empty idea: the line starts right after the dot. */
.nz-idea-list li.is-empty .nz-write-rule {
  height: 4.5mm;
}

.nz-ideas-own {
  flex: 1;
  min-height: 0;
  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-lines {
  flex: 1;
  min-height: 0;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  gap: 3mm;
}

.nz-ideas-own .nz-write-line {
  flex: none;
}

.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 {
  /* Gelasio draws some digits lower by default. Lining figures keep all digits on one line. */
  font-variant-numeric: lining-nums;
  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 1fr;
  gap: 4mm 8mm;
}

/* ---------- Kolekcja świąteczna ---------- */
/* Lista prezentów: for whom, the idea, and two spaces for stickers (bought, wrapped). */
.nz-gifts-body {
  justify-content: flex-start;
  padding-top: 3mm;
  padding-bottom: 3mm;
}

.nz-gift {
  flex: 1;
  display: flex;
  align-items: center;
  gap: 5mm;
  border-bottom: var(--nz-write-line) solid var(--nz-color-rule-paper);
  font-size: var(--nz-print-task);
  font-weight: var(--nz-weight-bold);
}

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

/* The column names: a coloured band like the group headings. */
.nz-gift.is-head {
  flex: none;
  height: var(--nz-band-height-group);
  border-bottom: none;
  border-radius: var(--nz-radius-band);
  background: var(--nz-color-group-bg);
  font-size: var(--nz-print-label);
  font-weight: var(--nz-weight-label);
  letter-spacing: var(--nz-tracking-label);
  text-transform: uppercase;
}

.nz-gift-person {
  width: var(--nz-gift-person-width);
  flex: none;
  min-width: 0;
  box-sizing: border-box;
  padding-left: 4mm;
}

.nz-gift-idea {
  flex: 1;
  min-width: 0;
}

.nz-gift:not(.is-head) .nz-gift-person {
  font-family: var(--nz-font-display);
  font-size: var(--nz-print-group);
  font-weight: var(--nz-weight-display);
}

.nz-gift-mark {
  width: var(--nz-gift-field-width);
  flex: none;
  text-align: center;
}

/* Tighter letters in the column names, so "ZAPAKOWANE" fits above its space. */
.nz-gift.is-head .nz-gift-mark {
  letter-spacing: 0.04em;
}

.nz-gift-field {
  height: var(--nz-list-field-height);
  box-sizing: border-box;
  border: var(--nz-field-border) solid var(--nz-color-field-frame);
  border-radius: var(--nz-radius-field);
}

/* An empty cell: a line to write on, sitting near the bottom of the row. */
.nz-gift .nz-write-line {
  height: 7mm;
}
