/* Screen typography overrides. Printed shopping lists and freezer labels keep their existing sizes. */
@media screen {
  :root { --ink:#203c2e; --muted:#4f5f4b; --line:#d1d9cb; }
  body { font-family:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif; font-size:16px; line-height:1.6; font-weight:400; color:var(--ink); }
  body button, body input, body select, body textarea { font-family:inherit; line-height:1.45; }
  body h1, body h2, body h3, body .recipe-name, body .stock-card h3,
  body .freezer-batch h3, body .favorite-card h3, body .kitchen-shortcuts strong {
    font-family:inherit; font-weight:650; line-height:1.25; letter-spacing:-.02em; color:#203c2e;
  }
  body .hero h1, body .meals-hero h1, body .kitchen-hero h1, body .list-heading h1 {
    font-size:clamp(34px,4.3vw,50px); line-height:1.12; letter-spacing:-.025em;
  }
  body h2, body .offers-top h2, body .recipe-results-top h2, body .freezer-heading h2,
  body .inventory-section>h2, body .household-card h2, body .household-start h2,
  body .household-overview h2, body .favorite-section>h2, body .small-dialog h2,
  body .branch-dialog h2, body .recipe-detail-heading h2 { font-size:28px; }
  body .detail-content h2 { font-size:24px; line-height:1.35; }
  body .section-line h2 { font-size:19px; }
  body .list-store-heading h2 { font-size:20px; }
  body .recipe-name, body .stock-card h3, body .freezer-batch h3,
  body .favorite-card h3, body .kitchen-shortcuts strong { font-size:22px; }
  body .empty-state h3, body .recipe-freezer-guide h3 { font:650 23px/1.3 system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif; }
  body .brand, body .top-inner .brand { font-size:24px; font-weight:750; letter-spacing:-.8px; }
  body .footer-brand { font-size:17px; font-weight:700; }
  body .hero-description, body .meals-hero p:not(.eyebrow), body .kitchen-hero>p:last-of-type {
    font-size:16px; line-height:1.7; color:#465c40;
  }
  body .meal-scope, body #meal-scope-text { font-size:13px; line-height:1.65; color:#4a6040; }
  body .eyebrow, body .eyebrow.small, body .recipe-card .eyebrow,
  body .kitchen-hero .eyebrow, body .meals-hero .eyebrow, body .freezer-heading .eyebrow {
    font-family:inherit; font-size:12px; font-weight:700; letter-spacing:.09em; color:#4b5e42;
  }

  /* Everyday copy and instructions. */
  body .muted, body .offers-top .muted, body .recipe-results-top .muted,
  body .inventory-section>.muted, body .favorite-section>.muted,
  body .meal-small-note, body .inventory-help, body .inventory-overview p,
  body .freezer-heading p:not(.eyebrow), body .prep-submit p, body .freezer-empty,
  body .freezer-batch p:not(.eyebrow), body .freezer-batch p.batch-note,
  body .favorite-empty, body .favorite-card p:not(.eyebrow), body .household-overview p,
  body .household-card>p:not(.eyebrow), body .household-card .household-small,
  body .kitchen-shortcuts p, body .sharing-note, body .sharing-note p,
  body .invitation-code p, body .household-status, body .household-account,
  body .list-tip, body .list-item-info p, body .empty-state p, body .alert,
  body .detail-description, body .detail-status, body .detail-disclaimer,
  body .small-dialog p:not(.eyebrow), body .branch-intro,
  body .branch-dialog details>p, body .branch-disclaimer,
  body .recipe-detail-heading>p:not(.eyebrow), body .recipe-check-status,
  body .recipe-detail-note, body .recipe-needed, body .recipe-match,
  body .recipe-browse-filters>p, body .recipe-freezer-guide>p,
  body .recipe-freezer-guide dd, body .freezer-source-note,
  body .freezer-guide, body .batch-guide-details {
    font-size:14px; line-height:1.7; color:#4b5d44;
  }
  body .sharing-note strong { font-size:15px; font-weight:650; color:#674e27; }
  body .sharing-note, body .alert, body .household-status { color:#715226; }
  body .sync-pill.sync-error, body .stock-card.low .stock-state,
  body .stock-card.out .stock-state { color:#715123; }
  body .freezer-guide summary, body .batch-guide-details summary { font-size:14px; font-weight:650; }
  body .batch-guidance p { font-size:14px!important; line-height:1.7!important; color:#435c39; }
  body .batch-guidance .guidance-basis { font-size:12px!important; color:#53644a; }
  body .recipe-freezer-guide .freezer-guide-basis,
  body .recipe-freezer-guide .freezer-guide-quality-note { font-size:12px; color:#53644a; }

  /* Controls use the same clear face and an easy-to-read minimum size. */
  body .top-inner nav .nav-tab { font-size:15px; font-weight:600; color:#4a5b43; }
  body .top-inner nav .nav-tab.active { color:#1d4c32; }
  body .location-button, body .primary-button, body .secondary-button,
  body .search-box button, body .recipe-search button, body .joined-input button,
  body .household-start .primary-button, body .household-actions button,
  body .manual-grocery-form button, body .inventory-form-actions button,
  body .inventory-overview button, body .prep-submit .primary-button,
  body .batch-actions button, body .recipe-detail-actions button,
  body .recipe-detail-actions a, body .favorite-card button, body .favorite-card a,
  body .branch-result button, body #freezer-print-confirm {
    font-size:14px; font-weight:600; min-height:40px;
  }
  body .text-button, body .how-note .text-button, body .meal-scope .text-button,
  body .ingredient-actions .text-button, body .stock-actions .text-button,
  body .list-actions .text-button { font-size:13px; font-weight:600; color:#355d2a; }
  body .chip, body .recipe-controls .chip, body .quick-searches button {
    font-size:13px; font-weight:550; padding:9px 13px; color:#445e38; min-height:36px;
  }
  body .chip.active { color:#fff; }
  body .filter-chips { flex-wrap:wrap; }
  body .selects select { font-size:13px; max-width:180px; padding:10px; color:#3d5334; }
  body input, body select, body textarea, body .search-box input,
  body .recipe-search input, body .freezer-planner input,
  body .inventory-form input, body .inventory-form select,
  body .inventory-controls>input, body .household-card input,
  body #household-login-form input, body .manual-grocery-form input,
  body .branch-dialog form:not(.branch-search-form) input,
  body .branch-search-form input, body .recipe-browse-filters select {
    font-family:inherit; font-size:16px; font-weight:400; color:#25442d;
  }
  body input::placeholder, body textarea::placeholder, body .search-box input::placeholder { color:#65745e; opacity:1; }
  body .freezer-planner label, body .inventory-form label,
  body .household-card label, body .invitation-code label,
  body .manual-grocery-form label, body .branch-search-form label,
  body .branch-dialog form:not(.branch-search-form) label,
  body .recipe-browse-filters label, body .small-dialog label {
    font-size:14px; font-weight:600; color:#3f5c33;
  }
  body .pantry-shortcut, body .ingredient-actions label { font-size:13px; color:#425a37; }
  body .ingredient-actions input, body .pantry-shortcut input { width:17px; height:17px; }
  body .close-dialog { width:42px; height:42px; font-size:30px; color:#3d5532; }

  /* Store and offer cards. */
  body .store-copy strong { font-size:16px; }
  body .store-copy p { font-size:13px; color:#52634a; }
  body .store-branch button { font-size:14px; line-height:1.55; color:#345b2b; -webkit-line-clamp:2; }
  body .store-branch p, body .store-bottom, body .store-bottom a,
  body .store-status, body .branch-filter, body .branch-filter>span,
  body .retailer-links>div, body .retailer-links span, body .retailer-links a,
  body .branch-status { font-size:12px; line-height:1.6; color:#4c6041; }
  body .store-status.error, body .branch-status:not(.matched) { color:#725329; }
  body .store-card:not(.selected) { opacity:.8; }
  body .store-logo, body .store-logo.aldi, body .store-logo.giant, body .store-logo.acme,
  body .store-logo.outlet, body .store-logo.shoprite, body .store-logo.freshgrocer { font-size:12px; }
  body .offer-title { font-size:16px; font-weight:600; line-height:1.45; min-height:46px; }
  body .offer-store, body .offer-badge, body .price-prefix, body .price-post,
  body .sale-story, body .offer-footer, body .offer-footer button,
  body .price-was, body .price-unknown, body .price-comparison-note,
  body .price-savings, body .detail-content .price-was, body .detail-content .price-savings { font-size:12px; }
  body .offer-store { color:#5d5734; }
  body .price-prefix, body .price-post, body .price-was, body .price-unknown,
  body .price-comparison-note, body .offer-footer { color:#4c5f42; line-height:1.65; }
  body .sale-story, body .offer-expiry.ending { color:#755222; }
  body .offer-footer button { color:#345e2b; font-weight:600; }
  body .offer-badge { padding:5px 8px; }
  body .offer-save { width:34px; height:34px; font-size:23px; }
  body .offer-save.saved { font-size:17px; }
  body .price-main { font-size:28px; font-weight:700; font-variant-numeric:tabular-nums; }
  body .price-main.text-price, body .offer-card .price-main.text-price { font-size:18px; font-weight:600; }
  body .detail-content .price-main { font-size:32px; }
  body .detail-content .price-post { font-size:14px; }
  body .price-savings { padding:4px 7px; color:#2b5722; }
  body .offer-body { padding:18px; }
  body .offers-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  body .offer-footer, body .store-bottom { flex-wrap:wrap; row-gap:7px; }

  /* Recipes, ingredient checks, lists and inventory. */
  body .recipe-kind, body .recipe-freezer-meta, body .recipe-attribution,
  body .recipe-attribution a, body .recipe-coverage span,
  body .ingredient-info>span, body .ingredient-info p,
  body .ingredient-info p.ingredient-price, body .ingredient-group h3 span,
  body .freezer-summary, body .sync-pill, body .stock-card-top,
  body .stock-state, body .stock-rule, body .stock-date, body .stock-notes,
  body .freezer-batch a, body .freezer-source-note a,
  body .recipe-freezer-guide>a { font-size:12px; line-height:1.65; color:#4e6343; }
  body .recipe-kind { font-weight:600; }
  body .recipe-match { color:#3d6130; }
  body .recipe-open { font-size:14px; font-weight:600; color:#315d27; min-height:42px; }
  body .recipe-match strong { font-size:17px; font-weight:700; }
  body .ingredient-group h3, body .ingredient-info>strong { font-size:15px; font-weight:650; }
  body .ingredient-row.missing .ingredient-info p,
  body .ingredient-row.unchecked .ingredient-info p { color:#73582d; }
  body .ingredient-row.pantry { opacity:.9; }
  body .recipe-coverage strong { font-size:28px; font-weight:650; }
  body .recipe-freezer-guide dt { font-size:13px; }
  body .list-item-info button, body .extra-items .list-item-info>strong { font-size:15px; font-weight:600; }
  body .list-item-price p, body .list-store-heading span, body .list-store-heading a { font-size:12px; color:#4b6040; }
  body .list-item-price strong { font-size:19px; font-weight:650; }
  body .list-item-price { max-width:200px; }
  body .stock-quantity { font-size:14px; color:#4a603d; }
  body .stock-quantity strong { font-size:28px; font-weight:650; color:#345d28; }
  body .stock-amount button { font-size:16px; min-width:36px; min-height:36px; color:#365a2c; }
  body .stock-amount button:last-child { font-size:13px; }
  body .stock-actions { flex-wrap:wrap; }

  /* Supplemental context should still be readable. */
  body .hero-meta, body .quick-searches, body .count, body .how-note p,
  body .detail-dates, body .detail-branch, body .detail-branch strong,
  body .detail-branch p, body .detail-branch small,
  body .favorite-row strong, body .favorite-row small,
  body .branch-result p, body .branch-locator, body .branch-dialog summary,
  body .recipe-freezer-guide .freezer-guide-quality-note,
  body footer, body footer>p:last-child { font-size:12px; line-height:1.7; color:#4c5f42; }
  body .favorite-row strong, body .branch-result strong, body .branch-dialog h3 { font-size:15px; font-weight:600; }
  body .favorite-card a, body .branch-locator a, body .freezer-guide a,
  body .freezer-source-note a, body .recipe-attribution a { color:#315d28; }
  body .detail-branch p, body .detail-branch.matched p { color:#4d6141; }
  body .how-note strong { font-size:15px; }
  body .art-stamp { font-size:10px; color:#5b623e; }
  body footer { align-items:flex-start; flex-wrap:wrap; }
  body .filter-bar, body .recipe-controls, body .branch-filter { flex-wrap:wrap; }
  body .recipe-controls { align-items:flex-start; }

  @media(max-width:1000px) {
    body .top-inner { height:auto; min-height:88px; flex-wrap:wrap; row-gap:0; padding-top:14px; }
    body .top-inner nav { order:3; width:100%; height:54px; align-self:auto; justify-content:flex-start; overflow-x:auto; gap:22px; }
    body .top-inner nav .nav-tab { min-height:48px; }
    body .offers-grid, body .recipe-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    body .recipe-browse-filters { grid-template-columns:1fr 1fr; }
    body .recipe-browse-filters>.text-button { justify-self:start; }
  }
  @media(max-width:720px) {
    body main { padding-left:20px; padding-right:20px; }
    body .top-inner { padding-left:20px; padding-right:20px; }
    body .top-inner nav { gap:16px; }
    body .top-inner nav .nav-tab { font-size:14px; }
    body .hero h1, body .meals-hero h1, body .kitchen-hero h1, body .list-heading h1 { font-size:34px; }
    body .hero-description, body .meals-hero p:not(.eyebrow), body .kitchen-hero>p:last-of-type { font-size:15px; max-width:100%; }
    body .store-copy strong { font-size:16px; }
    body .store-copy p { display:block; }
    body .branch-filter>span { margin-left:0; }
    body .detail-grid { grid-template-columns:1fr; }
    body .detail-image { max-height:300px; }
    body .ingredient-row { align-items:flex-start; gap:14px; }
    body .ingredient-info>span { display:block; margin:3px 0; }
    body .ingredient-actions { flex-direction:column; align-items:flex-end; }
    body .recipe-coverage { gap:10px; padding:14px; }
    body .recipe-coverage span { font-size:12px; }
    body .batch-actions { flex-direction:row; flex-wrap:wrap; }
    body .freezer-batch { align-items:flex-start; flex-wrap:wrap; }
  }
  @media(max-width:600px) {
    body .store-grid, body .offers-grid, body .recipe-grid, body .inventory-items { grid-template-columns:1fr; }
    body .store-card { grid-template-columns:46px minmax(0,1fr) 20px; padding:18px; }
    body .store-logo { width:46px; height:46px; }
    body .recipe-photo { height:210px; }
    body .recipe-name { min-height:0; }
    body .search-box { flex-wrap:wrap; padding:10px; gap:8px; }
    body .search-box input { flex-basis:calc(100% - 40px); font-size:16px; }
    body .search-box>button { width:100%; }
    body .quick-searches { flex-wrap:wrap; }
    body .selects { flex-wrap:wrap; width:100%; }
    body .selects select { flex:1; max-width:none; }
    body .retailer-links>div { align-items:flex-start; }
    body .retailer-links span { flex-basis:100%; }
    body .list-item { flex-wrap:wrap; }
    body .list-item-info { flex:1; min-width:0; }
    body .list-item-price { margin-left:30px; max-width:calc(100% - 60px); text-align:left; }
    body .list-store-heading { flex-wrap:wrap; }
    body .recipe-detail-actions { flex-direction:column; align-items:stretch; }
    body .recipe-detail-actions button, body .recipe-detail-actions a { white-space:normal; text-align:center; }
    body .recipe-coverage { grid-template-columns:1fr; }
    body .recipe-coverage span { display:flex; align-items:center; gap:10px; }
    body .recipe-coverage strong { min-width:36px; }
    body .prep-submit, body .how-note { align-items:flex-start; flex-wrap:wrap; }
    body .how-note .text-button { margin-left:0; }
    body .favorite-card { flex-wrap:wrap; }
    body .favorite-card>div:last-child { flex-direction:row; align-items:center; justify-content:flex-start; }
    body footer>p:last-child { text-align:left; margin-left:0; }
  }
}

/* Navigation and store-focused browsing */
body .hero{min-height:235px}
body .hero-copy{padding-top:26px;padding-bottom:26px}
body .hero h1{font-size:48px}
body .hero-art svg{width:290px}
body .sun-circle{width:205px;height:205px;top:20px}
body .meals-hero{min-height:190px;padding:25px 34px}
body .meals-hero h1{font-size:43px}
body .meal-hero-art{width:105px;height:105px;font-size:66px;border-width:10px}
body .kitchen-hero{padding:26px 34px}
body .kitchen-hero h1{font-size:43px;margin:8px 0 10px}
body .kitchen-mark{font-size:55px;top:35px}
body .list-heading{padding:30px 0 20px}
body .list-heading h1{font-size:46px;margin-bottom:8px}
body .kitchen-page-heading{padding:30px 0 18px}
body .store-card{grid-template-columns:48px minmax(0,1fr) auto;align-items:center}
body .store-card:not(.selected){opacity:1}
body .store-card.selected{border-color:#597a59;box-shadow:0 0 0 2px #dce8d6}
body .store-view-button{background:#eef3e8;color:#315b38;border-radius:7px;padding:9px 11px;font-weight:700;font-size:12px;white-space:nowrap}
body .store-picker{display:flex;gap:8px;overflow-x:auto;padding:18px 1px 10px;scrollbar-width:thin}
body .store-picker button{flex:0 0 auto;border:1px solid #cfd8c9;border-radius:999px;background:#fff;padding:10px 15px;font-weight:700;font-size:13px}
body .store-picker button.active{background:var(--green);border-color:var(--green);color:#fff}
body .store-context{display:flex;align-items:center;justify-content:space-between;gap:18px;background:#f2f5ed;border:1px solid #dce4d7;border-radius:10px;padding:15px 17px;margin:4px 0 8px}
body .store-context>div:first-child{display:grid;gap:3px}
body .store-context strong{font-size:16px}
body .store-context span{font-size:13px;color:#50664f}
body .store-context small{font-size:11px;color:#748274}
body .store-context>div:last-child{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
body .store-context a{text-decoration:none;white-space:nowrap}
body .recipe-workspace{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:16px 0}
body .recipe-workspace button{display:grid;text-align:left;gap:3px;background:#f1f5ec;border:1px solid #d4dfcf;border-radius:10px;padding:15px 18px}
body .recipe-workspace strong{font-size:16px}
body .recipe-workspace span{font-size:12px;color:#687867}
body .recipe-tools-panel{border:1px solid #d8e1d3;border-radius:12px;background:#fbfcf7;padding:18px;margin:18px 0 24px}
body #close-recipe-tool{margin-bottom:8px}

@media(max-width:720px){
  body .top-inner nav{justify-content:flex-start;gap:21px}
  body .hero{min-height:210px;grid-template-columns:1fr}
  body .hero-copy{padding:24px}
  body .hero h1{font-size:38px}
  body .hero-art{display:none}
  body .meals-hero{min-height:170px;padding:24px}
  body .meals-hero h1{font-size:36px}
  body .kitchen-hero{padding:22px 24px}
  body .kitchen-hero h1{font-size:36px}
  body .kitchen-mark{display:none}
  body .store-card{grid-template-columns:40px minmax(0,1fr) auto}
  body .store-view-button{font-size:11px;padding:8px}
  body .store-context{align-items:flex-start;flex-direction:column}
  body .store-context>div:last-child{justify-content:flex-start}
  body .recipe-workspace{grid-template-columns:1fr}
  body .recipe-tools-panel{padding:14px}
}
.recipe-author{font-family:system-ui,-apple-system,"Segoe UI",Arial,sans-serif;font-size:13px!important;line-height:1.6!important;color:#465d43!important;margin:0 0 12px!important}.recipe-card .recipe-name{margin-bottom:8px}
