/* =========================================================
   SHOPPING LIST: Section headers (screen)
   ========================================================= */

#shoppingListGrouped { margin-top: 10px; }

.shopSection { margin: 0 0 14px; }
.shopSection:first-child { margin-top: 0; }

.shopSectionTitle {
  display: flex;
  align-items: center;
  gap: 10px;

  margin: 12px 0 8px;
  padding: 10px 12px;

  border: 1px solid var(--border);
  background: var(--surface2);
  color: var(--muted);

  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
  font-size: 12px;

  border-radius: 12px;
}

.shopSection:first-child .shopSectionTitle { margin-top: 0; }

.shopSectionTitle::before {
  content: "";
  width: 10px;
  height: 10px;
  border-radius: 999px;
  background: rgba(79,33,133,.22);
  border: 1px solid rgba(79,33,133,.25);
}

[data-theme="dark"] .shopSectionTitle::before {
  background: rgba(255,199,4,.18);
  border-color: rgba(255,199,4,.25);
}

/* Slightly tighter rows inside shopping output (screen) */
#shoppingListOutputCard .recipeRow.shopItem { padding: 10px 12px; }


/* =========================================================
   SHOPPING LIST: Compact preview (screen)
   Toggle adds: html.print-compact
   Make it OBVIOUS on desktop.
   ========================================================= */

html.print-compact #shoppingListPage {
  --compact-font: 13px;
  --compact-gap: 10px;
}

/* tighter desktop layout */
@media (min-width: 780px) {
  html.print-compact #shoppingListMainGrid.grid.two {
    gap: var(--compact-gap) !important;
  }
}

/* reduce padding in cards */
html.print-compact #shoppingListMealsCard,
html.print-compact #shoppingListOutputCard {
  padding: 12px !important;
}

/* tighter rows */
html.print-compact #shoppingListWeekList .recipeRow,
html.print-compact #shoppingListGrouped .recipeRow {
  padding: 0px 10px !important;
  gap: 10px !important;
}

/* smaller type */
html.print-compact #shoppingListGrouped .title,
html.print-compact #shoppingListWeekList .title,
html.print-compact #shoppingListGrouped .meta,
html.print-compact #shoppingListWeekList .meta {
  font-size: var(--compact-font) !important;
  line-height: 1.25 !important;
}

/* slightly tighter section titles */
html.print-compact .shopSectionTitle {
  padding: 8px 10px !important;
  font-size: 11px !important;
  letter-spacing: .07em !important;
  border-radius: 10px !important;
}


/* =========================================================
   SHOPPING LIST: PRINT
   One print block only.
   Baseline = NORMAL print
   html.print-compact = COMPACT print
   ========================================================= */

@media print {
  @page { margin: 14mm; }

  body { background: #fff !important; color: #111 !important; }
  .container { max-width: none !important; padding: 0 !important; }

  /* hide chrome */
  nav, .nav, .topbar, .nav-drawer, #nav-drawer,
  .hamburger, .drawer-close,
  .site-footer,
  .btnrow,
  #shoppingListHeaderCard,
  #shoppingListRawDetails,
  #shoppingListFilteredDetails,
  #tourOverlay,
  #tourBubble,
  .no-print {
    display: none !important;
  }

  /* show print header/meta */
  .printHeader, .printMeta { display: block !important; }

  .printHeader h1 {
    margin: 0 0 6px 0 !important;
    font-size: 18px !important;
  }

  .printMeta {
    margin: 0 0 14px 0 !important;
    font-size: 12px !important;
    color: #111 !important;
  }

  /* flatten cards */
  .card {
    border: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
    padding: 0 !important;
    margin: 0 !important;
  }

  h2 {
    margin: 0 0 10px 0 !important;
    font-size: 14px !important;
    break-after: avoid-page;
    page-break-after: avoid;
  }

  /* IMPORTANT: do NOT hide meals card unless you want it hidden.
     If you want meals to print, ensure this is NOT hidden anywhere. */
  #shoppingListMealsCard { display: block !important; }

  /* two column page: meals | shopping */
  #shoppingListMainGrid {
    display: grid !important;
    /* grid-template-columns: 1fr 1fr !important; */
    grid-template-columns:.5fr 2fr !important;
    gap: 16px !important; /* NORMAL baseline */
    align-items: start !important;
  }

  /* keep chunks together */
  #shoppingListMealsCard,
  #shoppingListOutputCard,
  .shopSection,
  .recipeRow.shopItem {
    break-inside: avoid;
    page-break-inside: avoid;
  }

  /* shopping list flows into 2 columns inside its card */
  #shoppingListGrouped {
    column-count: 2;
    column-gap: 18px; /* NORMAL baseline */
  }

  .shopSection {
    display: inline-block;
    width: 100%;
    margin: 0 0 5px 0 !important;
  }

  .shopSectionTitle {
    margin: 0 0 6px 0 !important;
    padding: 8px 10px !important; /* NORMAL baseline */
    border-radius: 10px !important;

    background: #f3f4f6 !important;
    border: 1px solid #e5e7eb !important;
    color: #111 !important;

    font-size: 11px !important;
    letter-spacing: .08em !important;
  }

  .shopSectionTitle::before {
    width: 8px !important;
    height: 8px !important;
    background: #111 !important;
    border-color: #111 !important;
  }

  /* item rows: checkbox + simple line */
  .recipeRow.shopItem {
    border: 0 !important;
    background: transparent !important;
    padding: 0 !important;
    margin: 0 0 8px 0 !important; /* NORMAL baseline */
  }

  .shopItem .title::before { content: "☐ "; }

  .shopItem .title {
    font-weight: 600 !important;
    font-size: 12px !important;   /* NORMAL baseline */
    line-height: 1.25 !important; /* NORMAL baseline */
    color: #111 !important;
  }

  .muted { color: #333 !important; }

  /* ---------- COMPACT PRINT (toggle ON) ---------- */
  html.print-compact #shoppingListMainGrid { gap: 10px !important; }
  html.print-compact #shoppingListGrouped  { column-gap: 12px !important; }

  html.print-compact .shopSectionTitle {
    padding: 6px 8px !important;
    font-size: 10px !important;
    letter-spacing: .06em !important;
  }

  html.print-compact .recipeRow.shopItem {
    margin: 0 0 6px 0 !important;
  }

  html.print-compact .shopItem .title {
    font-size: 11px !important;
    line-height: 1.15 !important;
  }
}