@page {
  size: A4 portrait;
  margin: 14mm 12mm;
}

body {
  background: #fff !important;
  color: #000 !important;
  font-size: 10.5pt;
}

.app { display: none !important; }

.sheets { display: block; }
.sheet { display: none; }

/* Ctrl+P without choosing a button still prints the menu. */
body[data-print=""] .sheet-menu,
body[data-print="menu"] .sheet-menu,
body[data-print="grocery"] .sheet-grocery { display: block; }

/* ---------- shared sheet chrome ---------- */

.sheet-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 16pt;
  padding-bottom: 6pt;
  border-bottom: 2pt solid #111;
  margin-bottom: 12pt;
}
.sheet-head .eyebrow {
  margin: 0;
  font-size: 8pt;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: #666;
}
.sheet-head h1 {
  margin: 2pt 0 0;
  font: 700 22pt/1.1 ui-serif, Georgia, "Times New Roman", serif;
  letter-spacing: -.01em;
}
.sheet-meta { text-align: right; font-size: 9pt; }
.sheet-meta strong { display: block; font-size: 10.5pt; }
.sheet-meta span { color: #555; }

.sheet-empty { color: #555; font-style: italic; }

.box {
  flex: 0 0 auto;
  display: inline-block;
  width: 10pt;
  height: 10pt;
  margin-top: 2pt;
  border: 1pt solid #333;
  border-radius: 2pt;
}
.box.ticked { background: #333; }

.sheet-notes { margin-top: 14pt; break-inside: avoid; }
.sheet-notes h2 {
  font-size: 8.5pt;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: #666;
  margin-bottom: 6pt;
}
.blank-line { margin: 0; height: 15pt; border-bottom: .75pt dotted #aaa; }

.sheet-foot {
  margin-top: 12pt;
  padding-top: 5pt;
  border-top: .75pt solid #ccc;
  font-size: 8pt;
  color: #777;
}

/* ---------- menu sheet ---------- */

.menu-grid { columns: 2; column-gap: 16pt; }

.menu-day {
  break-inside: avoid;
  margin-bottom: 10pt;
  padding: 6pt 8pt;
  border: .75pt solid #ddd;
  border-radius: 4pt;
  background: #fbfbfb;
}
.menu-day h2 {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  font: 700 11pt/1.2 ui-serif, Georgia, serif;
  border-bottom: .75pt solid #ddd;
  padding-bottom: 3pt;
  margin-bottom: 5pt;
}
.menu-day h2 span { font: 400 8.5pt ui-sans-serif, system-ui, sans-serif; color: #666; }
.menu-rest { margin: 0; font-size: 9pt; color: #888; font-style: italic; }

.menu-meal { display: flex; gap: 6pt; margin-bottom: 5pt; }
.menu-dish { margin: 0; font-size: 10pt; }
.menu-kind {
  display: inline-block;
  margin-right: 4pt;
  padding: .5pt 3pt;
  border-radius: 2pt;
  background: #eee;
  font-size: 7pt;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: #444;
  vertical-align: 1pt;
}
.menu-ing { margin: 1pt 0 0; font-size: 8.5pt; color: #444; }
.menu-note { margin: 1pt 0 0; font-size: 8.5pt; color: #666; font-style: italic; }

/* ---------- grocery sheet ---------- */

.list-grid { columns: 2; column-gap: 20pt; }

.list-group { break-inside: avoid; margin-bottom: 10pt; }
.list-group h2 {
  display: flex;
  justify-content: space-between;
  font-size: 8.5pt;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: #333;
  border-bottom: 1pt solid #333;
  padding-bottom: 2pt;
  margin-bottom: 4pt;
}
.list-group h2 span { letter-spacing: 0; color: #777; }
.list-group ul { list-style: none; margin: 0; padding: 0; }
.list-group li {
  display: flex;
  gap: 6pt;
  padding: 2.5pt 0;
  border-bottom: .5pt dotted #ccc;
  break-inside: avoid;
}
.list-group li.have .list-text { color: #888; }
.list-text { font-size: 9.5pt; }
.list-text em { display: block; font-size: 7.5pt; color: #777; font-style: normal; }
