/* Responsive application shell shared by pantry, inspiration, planner and profile. */
html { overflow-x: clip; text-size-adjust: 100%; -webkit-text-size-adjust: 100%; }
body { min-width: 320px; overflow-x: clip; }
img, video { max-width: 100%; }
button, a, input, select, textarea { -webkit-tap-highlight-color: transparent; }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, summary:focus-visible {
  outline: 3px solid rgba(238,123,58,.42);
  outline-offset: 3px;
}
.topbar, .hero, .workspace, .inspire-main, .planner-main, .profile-main {
  padding-left: max(var(--page-gutter, 40px), env(safe-area-inset-left));
  padding-right: max(var(--page-gutter, 40px), env(safe-area-inset-right));
}
dialog { overscroll-behavior: contain; }
.meal-type-heading {
  grid-column: 1/-1;
  display: grid;
  grid-template-columns: 42px minmax(0,1fr) auto;
  align-items: center;
  gap: 12px;
  margin: 22px 0 2px;
  padding: 16px 4px 11px;
  border-bottom: 1px solid var(--line);
}
.meal-type-heading:first-child { margin-top: 0; }
.meal-type-heading > span {
  display: grid;
  width: 42px;
  height: 42px;
  place-items: center;
  border-radius: 14px;
  color: var(--green);
  background: #eef3d7;
  font-size: 21px;
}
.meal-type-heading h3 { margin: 0; font-family: "Fraunces",serif; font-size: 25px; }
.meal-type-heading p { margin: 3px 0 0; color: var(--muted); font-size: 11px; line-height: 1.4; }
.meal-type-heading > strong { color: var(--orange); font: 700 20px "Fraunces",serif; }
.meal-type-heading[data-meal-type="lunch"] > span { background: #f7e5cf; }
.meal-type-heading[data-meal-type="dinner"] > span { color: white; background: var(--green); }

/* Tablet: less chrome, touch-safe controls, useful two-column density. */
@media (min-width: 721px) and (max-width: 1100px) {
  :root { --page-gutter: 24px; }
  .topbar { padding-top: 20px; padding-bottom: 20px; gap: 16px; }
  .hero { margin-top: 42px; margin-bottom: 52px; }
  .workspace { gap: 18px; padding-bottom: 54px; }
  .pantry-panel { padding: 24px; }
  .recipes-panel { --recipes-panel-gutter: 24px; padding: var(--recipes-panel-gutter); }
  .recipe-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .inspire-main, .planner-main, .profile-main { padding-top: 28px; padding-bottom: 60px; }
  .answer-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .result-columns { grid-template-columns: 1fr 1fr; }
  .planner-layout { grid-template-columns: 1fr; }
  .week-grid { grid-template-columns: repeat(7,minmax(280px,42vw)); }
  .weekly-shop { position: static; }
  .profile-grid { grid-template-columns: 1fr 1fr; }
  .settings-panel { grid-template-columns: minmax(220px,.7fr) 1.3fr; }
  .profile-main .panel-copy, .profile-main .settings-intro p { font-size: 13px; }
  .profile-main .activity-item strong { font-size: 13px; }
  .profile-main .activity-item span { font-size: 12px; }
  .profile-main .activity-item time { font-size: 10px; }
}

/* Phone shell: compact header and thumb-reachable persistent navigation. */
@media (max-width: 720px) {
  :root { --page-gutter: 16px; }
  .legal-entry-shell { padding:26px 22px; }
  .legal-entry-actions { align-items:stretch; flex-direction:column; text-align:center; }
  .legal-entry-accept { width:100%; }
  body { padding-bottom: calc(70px + env(safe-area-inset-bottom)); }
  .grain { opacity: .1; }
  .topbar {
    position: sticky;
    z-index: 40;
    top: 0;
    display: grid;
    grid-template-columns: 1fr minmax(0,auto);
    gap: 10px;
    width: 100%;
    padding-top: max(12px,env(safe-area-inset-top));
    padding-bottom: 12px;
    background: rgba(244,240,230,.96);
    border-bottom: 1px solid var(--line);
  }
  .brand { font-size: 18px; }
  .brand-mark { width: 34px; height: 34px; }
  .topnav {
    position: fixed;
    z-index: 60;
    inset: auto 0 0;
    order: initial;
    display: grid;
    grid-template-columns: repeat(4,minmax(0,1fr));
    width: 100%;
    height: calc(64px + env(safe-area-inset-bottom));
    padding: 5px max(6px,env(safe-area-inset-right)) env(safe-area-inset-bottom) max(6px,env(safe-area-inset-left));
    border: 0;
    border-top: 1px solid rgba(28,43,34,.13);
    border-radius: 0;
    background: rgba(251,250,245,.98);
    box-shadow: 0 -10px 30px rgba(28,43,34,.1);
  }
  .topnav a, .topnav a[data-profile-link] {
    position: relative;
    display: grid;
    min-width: 0;
    min-height: 54px;
    place-items: center;
    padding: 8px 3px;
    border-radius: 12px;
    font-size: 10px;
    line-height: 1.1;
    text-align: center;
    white-space: nowrap;
  }
  .topnav a.active { color: var(--green); background: #eef3d7; }
  .topnav a.active::after {
    content: "";
    position: absolute;
    bottom: 4px;
    width: 18px;
    height: 3px;
    border-radius: 3px;
    background: var(--orange);
  }
  .nav-avatar { display: none; }

  .hero { margin: 34px auto 40px; }
  h1, .inspire-intro h1, .planner-hero h1, .profile-hero h1 {
    max-width: 100%;
    font-size: clamp(38px,11.5vw,48px);
    line-height: .94;
    letter-spacing: -.04em;
    text-wrap: balance;
  }
  .intro, .inspire-intro > p:last-of-type, .planner-hero > div:first-child > p:last-child {
    margin-top: 20px;
    font-size: 15px;
    line-height: 1.6;
  }
  .eyebrow, .kicker { font-size: 10px; }

  .add-form { grid-template-columns: 1fr; gap: 6px; padding: 7px; border-radius: 16px; }
  .input-wrap { min-width: 0; padding-left: 8px; }
  .input-wrap input { min-width: 0; min-height: 48px; font-size: 16px; }
  .quantity-wrap { grid-template-columns: minmax(68px,1fr) minmax(70px,.8fr); min-width: 0; border-left: 0; }
  .quantity-wrap input, .quantity-wrap select { min-height: 48px; padding: 10px; font-size: 16px; }
  .expiry-wrap { min-height:48px; border-left:0; border-top:1px solid var(--line); padding:6px 9px; }
  .expiry-wrap input { font-size:14px; }
  .primary-button { min-height: 48px; padding: 12px 15px; }
  .receipt-onboarding { grid-template-columns:1fr; gap:14px; padding:19px; }
  .receipt-onboarding-actions { min-width:0; }
  .receipt-onboarding .receipt-onboarding-secondary { min-height:44px; }
  .scan-actions { display: grid; grid-template-columns: 1fr 1fr; width: 100%; gap: 8px; }
  .scan-action { min-width: 0; min-height: 58px; padding: 9px; }
  .scan-action strong { font-size: 11px; line-height: 1.25; }
  .scan-action small { display: none; }

  .workspace { padding-bottom: 34px; gap: 14px; }
  .impact-dashboard { grid-template-columns:1fr; gap:20px; margin:0 16px 18px; padding:22px; border-radius:20px; }
  .impact-dashboard dl { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .impact-dashboard dl>div { padding:12px; border-left:0; border-top:1px solid rgba(255,255,255,.14); }
  .pantry-panel, .recipes-panel { border-radius: 18px; }
  .pantry-panel { padding: 18px; }
  .recipes-panel { --recipes-panel-gutter: 18px; padding: var(--recipes-panel-gutter); }
  .section-heading h2, .recipes-header h2 { font-size: 27px; }
  .pantry-list { grid-template-columns: 1fr; margin-top: 18px; }
  .pantry-item { min-height: 58px; }
  .pantry-item-actions button, .text-button { min-width: 44px; min-height: 44px; }
  .pantry-edit-form input, .pantry-edit-form select { min-height: 44px; font-size: 16px; }
  .pantry-edit-actions button { min-height: 44px; }
  .recipes-header { gap: 14px; margin-bottom: 14px; }
  .servings-control { min-height: 50px; }
  .servings-control button { min-width: 44px; min-height: 44px; }
  .recipe-filters { gap: 8px; padding: 9px; }
  .recipe-filter-drawer>summary { width:auto; justify-content:center; margin-left:0; min-height:44px; }
  .recipe-discovery { grid-template-columns: 1fr; }
  .recipe-search { min-height: 50px; }
  .recipe-search input { min-height: 48px; font-size: 16px; }
  .favorites-filter { min-height: 48px; width: 100%; }
  .use-first-filter { min-height:48px; width:100%; }
  .own-recipes-link { min-height:48px; }
  .filter-chip, .select-filter select { min-height: 46px; font-size: 13px; }
  .recipe-grid { grid-template-columns: 1fr; gap: 12px; }
  .recipe-card { border-radius: 14px; }
  .recipe-art { aspect-ratio: 16/9; }
  .recipe-info h3 { font-size: 21px; }
  .recipe-info p { font-size: 12px; }
  .results-line { align-items: flex-start; gap: 12px; }
  .recipe-group-heading { gap: 8px; padding: 11px; }
  .recipe-group-heading small { max-width: 46%; line-height: 1.35; }
  .meal-type-heading { grid-template-columns: 40px minmax(0,1fr) auto; gap: 10px; margin-top: 26px; padding-top: 12px; }
  .meal-type-heading > span { width: 40px; height: 40px; }
  .meal-type-heading h3 { font-size: 23px; }
  .meal-type-heading p { font-size: 12px; }

  /* Mobile dialogs behave like bottom sheets and remain keyboard-safe. */
  dialog, #scan-dialog, .recipe-picker {
    width: 100%;
    max-width: none;
    max-height: min(92dvh,900px);
    margin: auto 0 0;
    border-radius: 22px 22px 0 0;
    padding-bottom: env(safe-area-inset-bottom);
  }
  #cook-mode-dialog { padding: 0; }
  .dialog-shell, .scan-dialog-shell, .picker-shell { padding: 24px 16px 22px; }
  #recipe-dialog .dialog-shell { padding-bottom: 190px; }
  .dialog-photo { width: calc(100% + 32px); margin: -24px -16px 22px; border-radius: 22px 22px 0 0; }
  .close-button, .picker-close { width: 44px; height: 44px; right: 12px; top: 12px; }
  .dialog-title { margin-right: 46px; font-size: 35px; }
  .dialog-columns, .fat-controls, .score-reasons { grid-template-columns: 1fr; }
  .nutrition-summary { min-height: 72px; padding: 10px 12px; }
  .nutrition-body { padding: 5px 12px 14px; }
  .nutrition-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .nutrition-grid span { white-space: normal; }
  .ingredient-list li, .steps-list li { font-size: 14px; }
  .ingredient-status-marker, .optional-toggle, .optional-toggle > span:not(.sr-only) { width: 44px; height: 44px; }
  .ingredient-status-marker { flex-basis: 44px; }
  .recipe-conversion-actions button, .fat-controls select { min-height: 44px; }
  #recipe-dialog[open] .recipe-action-dock { position: fixed; z-index: 5; left: 10px; right: 10px; bottom: max(10px,env(safe-area-inset-bottom)); margin: 0; padding: 10px; border: 1px solid rgba(28,43,34,.12); border-radius: 17px; background: rgba(251,250,245,.96); box-shadow: 0 12px 36px rgba(13,31,20,.22); backdrop-filter: blur(14px); }
  .recipe-primary-actions { grid-template-columns: 1fr 1fr; gap: 7px; }
  .recipe-primary-actions .plan-recipe-button { grid-column: 1; }
  .recipe-primary-actions.is-ready .start-cook-mode, .recipe-primary-actions.is-missing .cook-button { grid-column: 1/-1; grid-row: 1; }
  .recipe-primary-actions.is-ready .plan-recipe-button, .recipe-primary-actions.is-missing .plan-recipe-button { grid-row: 2; }
  .recipe-primary-actions.is-ready .cook-button, .recipe-primary-actions.is-missing .start-cook-mode { grid-column: 2; grid-row: 2; }
  .missing-preview { margin-bottom: 7px; font-size: 10px; }
  .dialog-bring-status:empty { display: none; }
  .cook-button, .plan-recipe-button { min-height: 48px; }
  .start-cook-mode { min-height: 48px; }
  .cook-mode-header { grid-template-columns: auto minmax(0,1fr); gap: 11px; padding-inline: 14px; }
  .cook-mode-exit { width: 44px; height: 44px; }
  .cook-mode-device-actions { grid-column: 1/-1; justify-content: space-between; }
  .wake-status { max-width: 64%; text-align: left; }
  .cook-mode-stage { --cook-stage-gutter: 18px; padding: 28px var(--cook-stage-gutter) 24px; }
  .cook-mode-stage h3 { margin: 14px 0 18px; font-size: clamp(38px,12vw,56px); }
  .cook-step-copy { font-size: 19px; line-height: 1.55; }
  .cook-step-guidance { grid-template-columns: 1fr; gap: 8px; margin-top: 24px; }
  .cook-step-guidance p { padding: 13px 14px; font-size: 13px; }
  .cook-timer { grid-template-columns: 1fr auto; gap: 8px 12px; }
  .cook-timer > span { align-self: end; }
  .cook-timer > strong { text-align: right; }
  .cook-timer > div { grid-column: 1/-1; }
  .cook-timer button { flex: 1; min-height: 44px; }
  .cook-mode-footer { grid-template-columns: 1fr 1fr; gap: 8px; padding: 12px 14px max(12px,env(safe-area-inset-bottom)); }
  .cook-step-dots { grid-column: 1/-1; grid-row: 1; min-height: 22px; }
  .cook-mode-footer > button { grid-row: 2; min-height: 52px; padding-inline: 12px; }
  .scan-tabs button, .scan-primary, .scan-secondary { min-height: 48px; font-size: 13px; }
  .manual-code > div { grid-template-columns: minmax(0,1fr); gap: 5px; }
  .manual-code input, .manual-code button { min-height: 46px; font-size: 16px; }
  .product-fields { grid-template-columns: 1fr; }
  .product-fields label:first-child { grid-column: auto; }
  .product-fields input, .product-fields select { min-height: 46px; font-size: 16px; }
  .receipt-workspace { grid-template-columns: 1fr; }
  .receipt-workspace > img { height: 190px; }
  .receipt-text-wrap textarea { min-height: 160px; font-size: 14px; }
  .receipt-item { grid-template-columns: 44px minmax(0,1fr); gap: 7px; padding: 8px; }
  .receipt-item > input, .receipt-item > select { grid-column: 2; min-height: 44px; font-size: 16px; }
  .receipt-check { grid-row: 1/5; width: 44px; height: 44px; }
  .receipt-check > span:not(.sr-only) { width: 30px; height: 30px; }

  /* Inspiration */
  .inspire-main { padding-top: 26px; padding-bottom: 40px; }
  .inspire-intro { margin-bottom: 28px; }
  .intro-stats { gap: 6px; }
  .intro-stats span { padding: 7px 9px; font-size: 10px; }
  .quiz-card { padding: 18px; border-radius: 18px; }
  .progress-track { margin-bottom: 26px; }
  .question-title { font-size: clamp(29px,9vw,40px); }
  .question-help { font-size: 14px; line-height: 1.5; }
  .answer-grid { grid-template-columns: 1fr; gap: 8px; }
  .answer-option { min-height: 76px; padding: 14px; }
  .answer-option strong { font-size: 15px; }
  .answer-option small { font-size: 12px; }
  .quiz-actions { position: sticky; bottom: 0; padding-top: 10px; background: var(--paper); }
  .quiz-actions button { flex: 1; min-height: 48px; }
  .result-card { border-radius: 18px; }
  .result-photo-wrap { aspect-ratio: 4/3; }
  .result-body { padding: 18px; }
  .result-body h2 { font-size: 39px; }
  .result-columns, .price-location-row, .preview-actions { grid-template-columns: 1fr; }
  .missing-panel, .recipe-preview { padding: 16px; }
  .live-price-box { align-items: stretch; flex-direction: column; }
  .live-price-box button, .bring-share, .open-recipe, .plan-result { min-height: 46px; font-size: 13px; }
  .shopping-list li { font-size: 14px; }
  .result-actions { flex-direction: column; }
  .result-actions button { min-height: 44px; }

  /* Planner */
  .planner-main { padding-top: 20px; padding-bottom: 36px; }
  .planner-hero { margin: 22px 0 26px; gap: 20px; }
  .week-summary { grid-template-columns: repeat(3,minmax(0,1fr)); border-radius: 16px; }
  .week-summary { width: 100%; min-width: 0; }
  .week-summary div { min-width: 0; padding: 12px 5px; }
  .week-summary strong { font-size: 22px; }
  .week-summary span { font-size: 9px; line-height: 1.2; }
  .week-toolbar { grid-template-columns: 46px minmax(0,1fr) 46px; border-radius: 15px; }
  .week-toolbar > button { min-height: 46px; }
  .week-toolbar > button:first-child { grid-column: 1; grid-row: 1; }
  .week-toolbar > div { grid-column: 2; grid-row: 1; }
  .week-toolbar #next-week { grid-column: 3; grid-row: 1; }
  .week-toolbar .today-button { grid-column: 1/-1; grid-row: 2; min-height: 40px; }
  .week-toolbar div { min-width: 0; }
  .week-toolbar strong { overflow: hidden; font-size: 16px; text-overflow: ellipsis; white-space: nowrap; }
  .week-board { margin-left: calc(-1 * var(--page-gutter)); margin-right: calc(-1 * var(--page-gutter)); border-right: 0; border-left: 0; border-radius: 0; }
  .week-grid { grid-template-columns: repeat(7,minmax(84vw,1fr)); gap: 9px; padding: 12px max(16px,env(safe-area-inset-left)); scroll-padding-inline: 16px; }
  .day-card { min-height: 360px; border-radius: 16px; }
  .day-head { position: sticky; top: 0; z-index: 2; background: var(--paper); }
  .meal-card img { height: 124px; }
  .meal-copy strong { font-size: 15px; }
  .meal-meta, .meal-meta select, .meal-extras summary, .meal-move summary, .meal-extras label, .meal-move label, .meal-move select, .meal-move button, .mealprep-controls label, .mealprep-controls select { font-size: 12px; }
  .meal-meta select, .meal-move select, .mealprep-controls select, .meal-move button, .split-prep, .add-meal { min-height: 44px; }
  .remove-meal { top: 132px; width: 44px; height: 44px; }
  .weekly-shop, .balance-panel { padding: 18px; border-radius: 18px; }
  .shop-heading { align-items: flex-start; }
  .shop-heading h2 { font-size: 25px; }
  .offer-controls { grid-template-columns: 1fr 1fr; }
  .offer-controls select, .offer-controls input, .offer-controls button { min-height: 44px; font-size: 16px; }
  .weekly-shopping-list { max-height: none; }
  .weekly-shopping-list .shopping-item { grid-template-columns: 44px minmax(0,1fr); row-gap: 6px; }
  .shop-check { grid-row: 1/4; width: 44px; height: 44px; }
  .shop-check span { width: 28px; height: 28px; }
  .shop-amount { grid-column: 2; justify-self: stretch; }
  .shop-amount input, .shop-amount select { width: auto; min-width: 72px; height: 40px; font-size: 14px; }
  .custom-item-form { grid-template-columns: minmax(0,1fr) 64px 72px 44px; }
  .custom-item-form input, .custom-item-form select, .custom-item-form button { min-height: 44px; font-size: 16px; }
  .bring-week { min-height: 50px; font-size: 14px; }
  .balance-metrics { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .balance-metric { min-height: 105px; padding: 13px; }
  .picker-recipe { grid-template-columns: 72px minmax(0,1fr) 34px; min-height: 84px; }
  .picker-recipe img { width: 72px; height: 64px; }

  /* Profile */
  .profile-main { padding-top: 16px; padding-bottom: 34px; }
  .profile-hero { grid-template-columns: 68px minmax(0,1fr); gap: 14px; margin: 20px 0 28px; }
  .profile-avatar { width: 64px; height: 64px; border-radius: 22px; font-size: 22px; }
  .profile-hero .eyebrow { margin-bottom: 7px; }
  .profile-hero h1 { font-size: clamp(35px,10vw,46px); }
  .settings-jump { grid-column: 1/-1; width: 100%; min-height: 48px; }
  .profile-grid, .settings-panel, .settings-form { grid-template-columns: 1fr; }
  .profile-panel { padding: 18px; border-radius: 18px; }
  .profile-main .panel-copy, .profile-main .settings-intro p { font-size: 14px; }
  .profile-main .quiet-button { min-height: 44px; font-size: 12px; }
  .activity-item { grid-template-columns: 44px 1fr; gap: 10px; padding: 14px 0; }
  .activity-avatar { width: 40px; height: 40px; font-size: 11px; }
  .profile-main .activity-item strong { font-size: 14px; }
  .profile-main .activity-item span { font-size: 13px; line-height: 1.45; }
  .profile-main .activity-item time { font-size: 11px; }
  .new-list-form { grid-template-columns: 1fr; }
  .new-list-form input, .new-list-form button { min-height: 48px; font-size: 16px; }
  .personal-list > header { align-items: flex-start; }
  .list-actions button { min-height: 44px; padding: 8px 11px; font-size: 12px; }
  .list-items li { grid-template-columns: 44px minmax(0,1fr) 44px; min-height: 54px; font-size: 14px; }
  .list-items input, .list-items button { width: 44px; height: 44px; }
  .list-add { grid-template-columns: minmax(0,1fr) 62px 72px 44px; padding: 10px; }
  .list-add input, .list-add select, .list-add button { min-height: 44px; height: 44px; font-size: 16px; }
  .settings-panel { gap: 22px; }
  .settings-form > label, .settings-form fieldset { font-size: 13px; }
  .settings-form input, .settings-form select, .save-settings { min-height: 48px; height: 48px; font-size: 16px; }
  .color-choice span { width: 40px; height: 40px; }
  .toggle-setting input { width: 24px; height: 24px; }
  .settings-status { font-size: 12px; }
}

@media (max-width: 390px) {
  :root { --page-gutter: 12px; }
  .topnav a, .topnav a[data-profile-link] { font-size: 9px; }
  .primary-button span { display: none; }
  .scan-actions { grid-template-columns: 1fr; }
  .scan-action .plus-feature-badge { width: fit-content; white-space: normal; }
  .scan-action-icon { width: 30px; height: 30px; }
  .custom-item-form, .list-add { grid-template-columns: minmax(0,1fr) 64px 44px; }
  .custom-item-form > :first-child, .list-add > :first-child { grid-column: 1/-1; }
  .custom-item-form select, .list-add select { grid-column: 1; }
  .profile-panel { padding: 15px; }
  .panel-heading { gap: 8px; }
}

@media (pointer: coarse) {
  button, [role="button"], summary, .topnav a { touch-action: manipulation; }
  .filter-chip, .answer-option, .result-actions button, .list-actions button { min-height: 44px; }
}

/* Kurze Tablet-/Handy-Ansichten und Querformat: Navigation bleibt einzeilig
   sichtbar, während ausschließlich der Anleitungsbereich scrollt. */
@media (pointer: coarse) and (max-height: 650px) {
  .cook-mode-header { grid-template-columns: auto minmax(0,1fr) auto; gap: 9px; padding: max(8px,env(safe-area-inset-top)) 12px 8px; }
  .cook-mode-exit { width: 42px; height: 42px; }
  .cook-mode-device-actions { grid-column: auto; }
  .wake-status { display: none; }
  #cook-fullscreen-toggle { min-height: 40px; padding-inline: 10px; }
  .cook-mode-stage { --cook-stage-gutter: 18px; padding: 16px var(--cook-stage-gutter) 18px; }
  .cook-mode-stage h3 { margin: 9px 0 13px; font-size: clamp(31px,7vw,46px); }
  .cook-step-copy { font-size: 17px; line-height: 1.45; }
  .cook-step-guidance { margin-top: 15px; }
  .cook-mode-footer { grid-template-columns: minmax(110px,1fr) auto minmax(110px,1fr); gap: 8px; padding: 8px 12px max(8px,env(safe-area-inset-bottom)); }
  .cook-step-dots { grid-column: 2; grid-row: 1; min-height: 0; }
  .cook-mode-footer > button { grid-row: 1; min-height: 46px; }
}

@media (max-height: 480px) {
  .cook-step-dots { display: none; }
  .cook-mode-footer { grid-template-columns: 1fr 1fr; }
}

@media (hover: none) {
  .primary-button:hover, .scan-action:hover, .recipe-card:hover, .answer-option:hover { transform: none; }
  .recipe-card:hover .recipe-image { transform: none; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

@media print {
  .topbar, .grain, button, dialog { display: none !important; }
  body { padding: 0; background: white; }
  .workspace, .planner-layout, .profile-grid, .settings-panel, .result-columns { display: block; padding: 0; }
  .pantry-panel, .recipes-panel, .weekly-shop, .profile-panel, .result-card { break-inside: avoid; box-shadow: none; }
}
