/* A print header occupies exactly the first 30 mm of the page, including
   its internal spacing. The QR's own white border is never cropped. */
.hka-output-info { display: none; }
.hka-sheet-footer > .hka-print-warning { grid-column: 1 / -1; margin: 0; }
body.hka-printing #hka-sheet {
  padding: 0 8mm 8mm !important;
  grid-template-rows: 30mm minmax(0, 1fr) auto !important;
}
body.hka-printing .hka-sheet-header {
  align-items: center;
  display: flex;
  gap: 3mm;
  height: 30mm;
  min-height: 0;
  margin: 0;
  padding: 0;
}
body.hka-printing .hka-sheet-header > div:first-child {
  /* Keep the title and scale at their previous vertical position. */
  align-self: flex-start;
  display: flex;
  flex: 1 1 0;
  flex-direction: column;
  height: 25mm;
  justify-content: center;
  min-width: 0;
}
body.hka-printing #hka-map-title {
  /* Override the older one-line fitter only in print; never shrink the type. */
  font-size: 16pt !important;
  height: auto;
  line-height: 1.1;
  margin: 0;
  overflow: visible;
  overflow-wrap: anywhere;
  white-space: normal;
}
body.hka-printing #hka-map-subtitle {
  font: 8pt/1.2 Arial, Helvetica, sans-serif;
  margin: 1mm 0 0;
}
body.hka-printing .hka-output-info:not([hidden]) {
  align-items: flex-start;
  align-self: flex-start;
  height: 30mm;
  display: flex;
  flex: 0 0 auto;
  gap: 3mm;
  margin: 0;
  padding: 0;
  break-inside: avoid;
}
body.hka-printing .hka-output-info p,
.output-admin .output-preview p {
  box-sizing: border-box;
  color: #17231d;
  flex: 0 0 40mm;
  /* Six 10 pt line boxes occupy 21.17 mm; the 9 pt type is unchanged.
     With the 8 mm offset the text ends before the map begins at 30 mm. */
  font: 9pt/10pt Arial, Helvetica, sans-serif;
  margin: 8mm 0 0;
  padding: 0;
  min-width: 0;
  width: 40mm;
  overflow-wrap: anywhere;
  white-space: normal;
  -webkit-print-color-adjust: exact;
  print-color-adjust: exact;
}
body.hka-printing .hka-output-info .hka-output-image,
.output-admin .output-preview img {
  background: #fff;
  border: 0;
  box-sizing: border-box;
  display: block;
  flex: 0 0 25mm;
  height: 25mm;
  margin: 5mm 0 0;
  max-width: none;
  object-fit: contain;
  padding: 0;
  width: 25mm;
}
body.hka-printing .hka-sheet-header .hka-north-diagram {
  /* Keep the north symbol together and leave a clear margin below the paper edge. */
  align-self: flex-start;
  flex: 0 0 15mm;
  height: auto;
  margin-top: calc((25mm - 62px) / 2 + 4mm);
  width: 15mm;
  transform: none;
}
body.hka-printing .hka-sheet-header .hka-north-arrow {
  /* The stem ends 50 px below the arrow box's top (24 px + 26 px). */
  flex: 0 0 50px;
  height: 50px;
}
body.hka-printing .hka-sheet-header .hka-north-diagram small {
  display: block;
  line-height: 10px;
  margin: 2mm 0 0;
}
/* Admin preview uses the exact same text measure and QR size as printing. */
.output-admin fieldset { border: 0; margin: 0; min-width: 0; padding: 0; }
.output-admin label:not(.check) { display: block; font-weight: 700; margin: 16px 0 7px; }
.output-admin input:not([type="checkbox"]), .output-admin textarea { box-sizing: border-box; max-width: 100%; width: 100%; }
.output-admin .output-color-row { align-items: center; display: flex; flex-wrap: wrap; gap: 10px; }
.output-admin .output-color-row input[type="color"] { flex: 0 0 72px; height: 44px; padding: 4px; width: 72px; }
.output-admin .output-color-row output { color: #35463c; font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-weight: 700; min-width: 76px; }
.output-admin input, .output-admin textarea { font: inherit; }
.output-admin textarea { resize: vertical; }
.output-admin small { color: #536158; display: block; line-height: 1.5; margin: 7px 0; }
.output-admin .check { align-items: center; display: flex; gap: 8px; }
.output-admin .check input { flex: 0 0 auto; }
.output-admin .output-preview {
  align-items: flex-start;
  background: #fff;
  box-sizing: content-box;
  display: flex;
  gap: 3mm;
  height: 30mm;
  margin: 12px 0;
  outline: 1px solid #cfd5cf;
  padding: 0;
  width: max-content;
}
.output-admin #output-status { line-height: 1.5; padding: 10px; }
.output-admin #output-status.error { background: #fff0ed; color: #84251b; }
.output-admin #output-status.success { background: #edf3ed; color: #173f2d; }
.output-admin [hidden], .hka-output-info[hidden] { display: none !important; }
.output-admin button:disabled { cursor: wait; }
.output-admin input:not([type="checkbox"]), .output-admin textarea {
  border: 1px solid #aeb8b0;
  border-radius: 7px;
  min-height: 44px;
  padding: 9px 10px;
}
.output-admin .actions { flex-wrap: wrap; }
