/*
 * Printable cheatsheet stylesheet — shared by every /print/ route (plant, seed, guide).
 * Designed for a clean A4/Letter sheet: brand-matched on screen, ink-frugal on paper.
 * The on-screen toolbar (.sheet-toolbar) is dropped entirely when printing.
 */
:root {
  --ps-green: #2f6d3a;
  --ps-green-deep: #1d4524;
  --ps-green-ink: #15321b;
  --ps-green-soft: #eaf3e6;
  --ps-clay-deep: #8f3c1f;
  --ps-paper: #f8f6ee;
  --ps-ink: #1f2a1d;
  --ps-muted: #5c6b58;
  --ps-faint: #677561;
  --ps-line: #d8d6c8;
  --ps-serif: 'Fraunces', 'Iowan Old Style', 'Palatino Linotype', Palatino, Georgia, 'Times New Roman', serif;
  --ps-sans: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
}

* { box-sizing: border-box; }

body {
  margin: 0;
  font-family: var(--ps-sans);
  color: var(--ps-ink);
  background: #e9e7dc;
  line-height: 1.5;
  -webkit-print-color-adjust: exact;
  print-color-adjust: exact;
}

/* The sheet itself — sized to an A4 content column on screen, full bleed on paper. */
.sheet {
  background: #fff;
  max-width: 820px;
  margin: 1.5rem auto;
  padding: 2.6rem 2.8rem 2.2rem;
  box-shadow: 0 10px 40px rgba(26, 48, 22, 0.14);
}

/* --- On-screen toolbar (never printed) --- */
.sheet-toolbar {
  max-width: 820px;
  margin: 1.5rem auto -0.5rem;
  display: flex;
  gap: 0.6rem;
  align-items: center;
  justify-content: flex-end;
  font-family: var(--ps-sans);
}
.sheet-toolbar__spacer { margin-right: auto; font-size: 0.85rem; color: var(--ps-faint); }
.sheet-btn {
  appearance: none;
  border: 1px solid var(--ps-green);
  background: var(--ps-green-deep);
  color: #fff;
  font: inherit;
  font-size: 0.9rem;
  padding: 0.5rem 1rem;
  border-radius: 8px;
  cursor: pointer;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
}
.sheet-btn--ghost { background: #fff; color: var(--ps-green-deep); }
.sheet-btn--pdf { background: var(--ps-clay-deep); border-color: var(--ps-clay-deep); }
.sheet-btn:hover { filter: brightness(1.06); }

/* Force a page break before an element when printing (multi-page templates). */
.sheet-break { break-before: page; }

/* --- Masthead --- */
.sheet-head {
  border-bottom: 2px solid var(--ps-green-deep);
  padding-bottom: 0.9rem;
  margin-bottom: 1.4rem;
}
.sheet-brand {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  font-family: var(--ps-serif);
  font-weight: 600;
  color: var(--ps-green-deep);
  font-size: 0.95rem;
  letter-spacing: 0.01em;
}
.sheet-brand__mark { color: var(--ps-clay-deep); }
.sheet-eyebrow {
  display: inline-block;
  margin-top: 0.6rem;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: var(--ps-clay-deep);
}
.sheet h1 {
  font-family: var(--ps-serif);
  color: var(--ps-green-ink);
  font-size: 1.95rem;
  line-height: 1.12;
  margin: 0.35rem 0 0.2rem;
}
.sheet-sci { margin: 0; color: var(--ps-muted); font-style: italic; }
.sheet-lede { margin: 0.7rem 0 0; font-size: 1.02rem; color: #344230; max-width: 60ch; }

/* --- Sections --- */
.sheet section { margin-top: 1.4rem; }
.sheet h2 {
  font-family: var(--ps-serif);
  color: var(--ps-green-ink);
  font-size: 1.18rem;
  margin: 0 0 0.6rem;
  padding-bottom: 0.25rem;
  border-bottom: 1px solid var(--ps-line);
}
.sheet h3 { font-family: var(--ps-serif); color: var(--ps-green-ink); font-size: 1.02rem; margin: 1.1rem 0 0.4rem; }
.sheet p { margin: 0 0 0.7rem; }
.sheet a { color: var(--ps-green-deep); }

/* Facts grid — the "at a glance" card row. */
.sheet-facts {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: 0.5rem 1.2rem;
}
.sheet-facts li {
  padding: 0.45rem 0.6rem;
  border: 1px solid var(--ps-line);
  border-radius: 7px;
  background: #fbfbf6;
  break-inside: avoid;
}
.sheet-facts dt,
.sheet-facts .k {
  display: block;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--ps-faint);
}
.sheet-facts dd,
.sheet-facts .v { margin: 0.1rem 0 0; font-size: 0.95rem; color: var(--ps-ink); }

/* Definition list — care at a glance. */
.sheet-deflist { list-style: none; margin: 0; padding: 0; }
.sheet-deflist li { padding: 0.35rem 0; border-bottom: 1px dotted var(--ps-line); break-inside: avoid; }
.sheet-deflist li:last-child { border-bottom: 0; }
.sheet-deflist strong { color: var(--ps-green-deep); }

/* Tag chips — non-link facet labels. */
.sheet-chips { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.4rem; }
.sheet-chips li {
  font-size: 0.82rem;
  padding: 0.2rem 0.6rem;
  border: 1px solid var(--ps-line);
  border-radius: 999px;
  background: var(--ps-green-soft);
  color: var(--ps-green-ink);
}

/* FAQ / Q&A blocks. */
.sheet-qa { break-inside: avoid; margin-bottom: 0.8rem; }
.sheet-qa__q { font-weight: 600; color: var(--ps-green-deep); margin: 0 0 0.15rem; }
.sheet-qa__a { margin: 0; color: #344230; }

/* Long-form prose (guides). */
.sheet-prose :is(h2, h3) { break-after: avoid; }
.sheet-prose ul, .sheet-prose ol { margin: 0 0 0.8rem; padding-left: 1.3rem; }
.sheet-prose li { margin: 0.2rem 0; }
.sheet-prose table { width: 100%; border-collapse: collapse; margin: 0.6rem 0; font-size: 0.9rem; }
.sheet-prose th, .sheet-prose td { border: 1px solid var(--ps-line); padding: 0.35rem 0.5rem; text-align: left; }
.sheet-prose img { max-width: 100%; height: auto; }

/* Planting plan — ordered plant list with spacing/size, the "Pflanzplan" table. */
.sheet-plan { width: 100%; border-collapse: collapse; font-size: 0.9rem; }
.sheet-plan th, .sheet-plan td { border: 1px solid var(--ps-line); padding: 0.4rem 0.55rem; text-align: left; vertical-align: top; }
.sheet-plan thead th { background: var(--ps-green-soft); color: var(--ps-green-ink); font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.05em; }
.sheet-plan tbody tr { break-inside: avoid; }
.sheet-plan .num { width: 1.6rem; text-align: center; color: var(--ps-faint); }
.sheet-plan .sci { font-style: italic; color: var(--ps-muted); font-size: 0.85rem; }

/* Checklist — tickable squares. */
.sheet-check { list-style: none; margin: 0; padding: 0; }
.sheet-check li {
  display: flex;
  gap: 0.6rem;
  align-items: flex-start;
  padding: 0.32rem 0;
  break-inside: avoid;
}
.sheet-check li::before {
  content: '';
  flex: 0 0 auto;
  width: 0.95rem;
  height: 0.95rem;
  margin-top: 0.15rem;
  border: 1.5px solid var(--ps-green);
  border-radius: 3px;
}

/* Blank writing lines (journals, notes). */
.sheet-lines { margin: 0.4rem 0 0; }
.sheet-lines .line {
  height: 1.55rem;
  border-bottom: 1px solid #c8d3c0;
}

/* Herbarium pressing box. */
.sheet-paste {
  border: 2px dashed #b7c4ae;
  border-radius: 8px;
  min-height: 320px;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  padding: 0.6rem;
  color: var(--ps-faint);
  font-size: 0.8rem;
  text-align: center;
}

/* Small labelled blanks (name / date fields on templates). */
.sheet-fields { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 0.7rem 1.2rem; margin: 0 0 1rem; }
.sheet-fields .f { display: flex; align-items: baseline; gap: 0.5rem; }
.sheet-fields .f span { font-size: 0.72rem; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; color: var(--ps-faint); white-space: nowrap; }
.sheet-fields .f .blank { flex: 1; border-bottom: 1px solid #c8d3c0; height: 1.2rem; }

/* Footer line. */
.sheet-foot {
  margin-top: 1.8rem;
  padding-top: 0.8rem;
  border-top: 1px solid var(--ps-line);
  font-size: 0.78rem;
  color: var(--ps-faint);
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
}

/* --- Print rules --- */
@page {
  size: A4;
  margin: 14mm 14mm 12mm;
}
@media print {
  body { background: #fff; }
  .sheet-toolbar { display: none !important; }
  .sheet {
    max-width: none;
    margin: 0;
    padding: 0;
    box-shadow: none;
  }
  /* Keep small, atomic blocks intact — but NOT whole sections, so large tables
     (calendars, long planting plans) can flow naturally across pages. */
  .sheet-qa, .sheet-facts li, .sheet-deflist li, .sheet-check li, .sheet-plan tbody tr { break-inside: avoid; }
  .sheet h2 { break-after: avoid; }
  .sheet h1 { font-size: 22pt; }
  .sheet h2 { font-size: 13pt; }
  a { color: inherit; text-decoration: none; }
}
