:root {
  --forest: #134e3d;
  --deep-forest: #0d3a2f;
  --mint: #dcefe6;
  --butter: #f8f2df;
  --coral: #f06d4f;
  --orange: #fa9d38;
  --ink: #1d2a27;
  --muted: #77817d;
  --line: #e8e8e1;
  --canvas: #fafaf7;
  --card: #ffffff;
  --shadow: 0 14px 40px rgba(34, 59, 49, .08);
}

* { box-sizing: border-box; }
[hidden][hidden] { display: none !important; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--canvas); color: var(--ink); font-family: "DM Sans", sans-serif; }
.product-art-sprite { position: absolute; width: 0; height: 0; overflow: hidden; }
.product-art { display: block; width: 100%; height: 100%; }
.production-ai-note { display: block; color: #8a5c35 !important; line-height: 1.35; white-space: normal; }
.production-card-select-all { display: inline-flex; align-items: center; gap: 8px; margin: 6px 0 12px; color: #40594a; font-size: 11px; font-weight: 700; }
.production-card-select-all input, .production-offer-card-head input { width: 18px; height: 18px; flex: none; accent-color: var(--forest); }
.production-offer-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; scroll-margin-top: 16px; }
.production-offer-card { min-width: 0; padding: 15px; border: 1px solid #dfe9df; border-radius: 13px; background: #fff; box-shadow: 0 4px 16px rgba(34, 59, 49, .04); }
.production-offer-card-head { display: flex; align-items: flex-start; gap: 10px; }
.production-offer-card-head > div { min-width: 0; flex: 1; }
.production-offer-card-head strong { display: block; color: #264737; font-size: 14px; line-height: 1.3; overflow-wrap: anywhere; }
.production-offer-card-head small { display: block; margin-top: 4px; color: #718078; font-size: 10px; line-height: 1.4; }
.production-offer-card-head .review-status { white-space: normal; text-align: center; line-height: 1.3; }
.production-offer-card-details { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 14px 0; }
.production-offer-card-details > div { min-width: 0; padding: 10px; border-radius: 9px; background: #f7faf6; }
.production-offer-card-details small, .production-offer-card-details strong, .production-offer-card-details span { display: block; overflow-wrap: anywhere; }
.production-offer-card-details small { color: #78867c; font-size: 9px; }
.production-offer-card-details strong { margin: 4px 0; color: var(--forest); font-size: 14px; }
.production-offer-card-details span { color: #617168; font-size: 10px; line-height: 1.35; }
.production-offer-card .production-ai-note { margin: 0 0 12px; font-size: 10px; }
.production-offer-card-foot { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.production-offer-card-foot .confidence { font-size: 10px; }
.production-offer-card .production-publish { min-height: 36px; padding: 6px 12px; border: 0; border-radius: 8px; background: var(--forest); color: #fff; font: 700 11px/1.3 "DM Sans", sans-serif; cursor: pointer; }
.production-offer-card .production-publish:hover:not(:disabled) { background: var(--deep-forest); }
.production-offer-card .production-publish:disabled { background: #e6ece7; color: #687c6e; cursor: not-allowed; }
.production-offer-card .production-publish:focus-visible { outline: 3px solid #86b99b; outline-offset: 2px; }
.production-publish-reason { display: block; margin-top: 8px; color: #8a5c35; font-size: 10px; line-height: 1.4; }
.production-offer-card-foot .review-row { min-height: 36px; padding: 6px 10px; border-radius: 8px; background: #eaf5ed; font-size: 11px; font-weight: 700; }
.production-offer-card-foot .production-dismiss { min-height: 36px; padding: 6px 10px; border: 0; border-radius: 8px; background: #fff0ec; color: #9a3e29; font-size: 11px; font-weight: 700; cursor: pointer; }
.production-offer-card-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 7px; }
.production-duplicate-review { margin: 12px 0; padding: 16px; border: 1px solid #eac8a8; border-radius: 13px; background: #fff8ef; }
.production-duplicate-review strong { color: #704524; }
.production-duplicate-review p { margin: 5px 0 12px; color: #806951; font-size: 11px; line-height: 1.45; }
.production-duplicate-review-list { display: grid; gap: 8px; max-height: 330px; overflow: auto; }
.production-duplicate-review-item { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; padding: 10px; border-radius: 9px; background: #fff; }
.production-duplicate-review-item small { display: block; margin-top: 3px; color: #756a5d; }
.production-duplicate-review-item-actions { display: flex; flex-wrap: wrap; gap: 7px; }
.production-duplicate-review-item button { padding: 7px 10px; border: 1px solid #dbc8ae; border-radius: 8px; background: #fffaf2; color: #563e27; font-size: 11px; font-weight: 700; cursor: pointer; }
.production-duplicate-review-item .production-dismiss { border-color: #f1d0c5; background: #fff0ec; color: #9a3e29; }
.production-withdraw-button { padding: 8px 12px; border: 1px solid #e4aa97; border-radius: 9px; background: #fff0ec; color: #963c27; font-size: 11px; font-weight: 700; cursor: pointer; }
.production-offer-empty { grid-column: 1 / -1; padding: 20px; border-radius: 10px; color: #6e8075; background: #f7faf6; text-align: center; }
.production-offer-pages { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 14px; }
.production-offer-pages button { min-height: 40px; padding: 8px 12px; border: 1px solid #cdded2; border-radius: 8px; background: #fff; color: var(--forest); font-size: 11px; font-weight: 700; }
.production-offer-pages button:disabled { opacity: .42; cursor: default; }
.production-offer-pages span { color: #52665a; font-size: 11px; font-weight: 700; text-align: center; }
@media (max-width: 720px) { .production-offer-cards { grid-template-columns: 1fr; }.production-food-controls { flex-wrap: wrap; }.production-offer-pages button { padding: 8px; } }
.recipe-image-review { margin: 18px 0 26px; padding: 20px; border: 1px solid #dce9e1; border-radius: 16px; background: #fff; }
.recipe-image-review-head { display: flex; align-items: end; justify-content: space-between; gap: 18px; margin-bottom: 18px; }
.recipe-image-review-head p:not(.eyebrow) { margin: 8px 0 0; color: #5b6b62; font-size: 12px; line-height: 1.5; }
.recipe-image-review-head label { display: grid; gap: 6px; width: min(270px, 100%); flex: none; color: #52665a; font-size: 11px; font-weight: 700; }
.recipe-image-review-head input { width: 100%; min-height: 40px; padding: 8px 11px; border: 1px solid #cdded2; border-radius: 9px; background: #fff; color: var(--ink); }
.recipe-image-review-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.recipe-image-review-card { display: grid; grid-template-columns: 104px minmax(0, 1fr); gap: 13px; min-width: 0; padding: 10px; border: 1px solid #e4ebe5; border-radius: 12px; background: #fcfdfa; }
.recipe-image-review-card img { width: 104px; height: 104px; border-radius: 9px; background: #f2f5ef; object-fit: cover; }
.recipe-image-review-card h3 { margin: 7px 0 4px; font-size: 14px; line-height: 1.25; }
.recipe-image-review-card p { margin: 0 0 9px; color: #6d7b72; font-size: 11px; }
.recipe-image-review-status { display: inline-block; color: #996023; font-size: 10px; font-weight: 800; line-height: 1.4; }
.recipe-image-review-open { padding: 0; border: 0; background: none; color: var(--forest); font-size: 11px; font-weight: 800; text-align: left; }
.recipe-image-review-open:hover { text-decoration: underline; }
.recipe-image-review-empty { grid-column: 1 / -1; margin: 0; padding: 22px; border-radius: 10px; background: #f7faf6; color: #64736a; text-align: center; }
.recipe-image-review-pages { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 15px; }
.recipe-image-review-pages button { min-height: 40px; padding: 8px 12px; border: 1px solid #cdded2; border-radius: 8px; background: #fff; color: var(--forest); font-size: 11px; font-weight: 700; }
.recipe-image-review-pages button:disabled { opacity: .4; cursor: default; }
.recipe-image-review-pages span { color: #52665a; font-size: 11px; text-align: center; }
.recipe-image-review-note, .recipe-image-review-warning { margin: 13px 0 0; color: #805928; font-size: 11px; line-height: 1.5; }
.recipe-image-review-warning { padding: 10px 12px; border-radius: 9px; background: #fff5e8; }
@media (max-width: 720px) { .recipe-image-review { padding: 15px; }.recipe-image-review-head { display: grid; }.recipe-image-review-head label { width: 100%; }.recipe-image-review-grid { grid-template-columns: 1fr; }.recipe-image-review-card { grid-template-columns: 82px minmax(0, 1fr); }.recipe-image-review-card img { width: 82px; height: 82px; }.recipe-image-review-pages button { padding: 8px; } }
.starter-pantry-tag { display: inline-flex; align-items: center; gap: 5px; }
.starter-pantry-tag .product-art { width: 20px; height: 20px; flex: none; }
.ingredient-art, .shopping-product-art { display: grid; place-items: center; flex: none; width: 30px; height: 30px; padding: 3px; border-radius: 8px; background: #f2f6ee; }
.promotion-emoji .product-art, .expiring-emoji .product-art, .pantry-product-emoji .product-art { width: 88%; height: 88%; }
.shopping-list input:checked ~ label { text-decoration: line-through; color: #949c98; }
button, a { font: inherit; }
button { cursor: pointer; }
a { color: inherit; text-decoration: none; }

.app-shell { display: grid; grid-template-columns: 252px minmax(0, 1fr); min-height: 100vh; }
.sidebar { background: #fff; border-right: 1px solid var(--line); padding: 28px 18px 18px; display: flex; flex-direction: column; position: sticky; top: 0; height: 100vh; }
.brand { display: flex; align-items: center; justify-content: center; padding: 0 10px; }
.brand-mark { width: 148px; height: 148px; flex: 0 0 148px; object-fit: contain; }
.main-nav { display: grid; gap: 5px; margin-top: 12px; }
.nav-link { padding: 12px 12px; border-radius: 10px; color: #66716d; font-size: 14px; font-weight: 600; display: flex; align-items: center; gap: 13px; transition: .2s ease; }
.nav-link > span { font-size: 20px; line-height: 16px; width: 18px; text-align: center; }
.nav-link b { background: #f1efe8; font-size: 11px; padding: 2px 7px; border-radius: 10px; margin-left: auto; }
.nav-link:hover, .nav-link.active { background: #eaf5ef; color: var(--forest); }
.nav-link.active { font-weight: 700; }
.sidebar-promo { background: #fff3df; border-radius: 13px; padding: 15px; margin-top: auto; color: #7a4f18; position: relative; overflow: hidden; }
.sidebar-promo:after { content: "✦"; color: #f2b14f; position: absolute; right: 8px; top: -12px; font-size: 55px; opacity: .2; }
.sidebar-promo .sparkle { color: #ef9630; }
.sidebar-promo strong { display: block; margin-top: 4px; font-size: 13px; }
.sidebar-promo p { margin: 4px 0 10px; font-size: 11px; line-height: 1.35; }
.progress { background: rgba(158, 101, 34, .15); height: 4px; border-radius: 5px; overflow: hidden; }
.progress span { display: block; height: 100%; width: 68%; background: var(--orange); border-radius: inherit; }
.profile-button { background: transparent; border: 0; display: flex; align-items: center; gap: 9px; margin-top: 20px; padding: 8px 7px; text-align: left; }
.avatar { background: #e8cdb3; width: 32px; height: 32px; display: grid; place-items: center; border-radius: 50%; color: #694b35; font-size: 10px; font-weight: 700; }
.profile-button strong { font-size: 12px; display: block; }.profile-button small { font-size: 10px; color: var(--muted); }.chevron { margin-left: auto; color: var(--muted); }

main { width: min(1260px, 100%); margin: 0 auto; padding: 0 54px 48px; overflow: hidden; }
.topbar { height: 110px; display: flex; align-items: center; justify-content: space-between; }
.eyebrow, .label-with-dot { color: #7c8883; font-weight: 700; letter-spacing: 1.4px; font-size: 10px; margin: 0 0 7px; }
h1, h2, h3, p { margin-top: 0; } h1 { font-family: "Playfair Display", serif; font-size: 26px; letter-spacing: -.7px; margin: 0; font-weight: 700; } h1 span { font-family: "DM Sans", sans-serif; font-size: 21px; } h2 { font-family: "Playfair Display", serif; font-size: 26px; letter-spacing: -.8px; margin: 0; } h3 { font-size: 16px; margin: 0; letter-spacing: -.2px; }
.topbar-actions { display: flex; align-items: center; gap: 12px; }.icon-button { position: relative; background: #fff; border: 1px solid var(--line); width: 39px; height: 39px; border-radius: 10px; font-size: 19px; color: var(--forest); }.icon-button i { position: absolute; width: 7px; height: 7px; border-radius: 50%; background: var(--coral); right: 8px; top: 8px; border: 1px solid #fff; }.date-button { background: #fff; border: 1px solid var(--line); border-radius: 10px; padding: 10px 13px; font-size: 12px; color: #43514c; font-weight: 600; }.date-button span { color: var(--forest); margin-right: 7px; }.date-button b { margin-left: 7px; color: #8e9793; }
.mobile-menu { display: none; }

.hero-grid { min-height: 250px; display: grid; grid-template-columns: 1.25fr .75fr; border-radius: 20px; overflow: hidden; background: var(--forest); color: #fff; }
.hero-copy { padding: 33px 39px 28px; position: relative; z-index: 1; }.label-with-dot { color: #c6e5d5; }.label-with-dot span { display: inline-block; background: #9ce3a5; width: 6px; height: 6px; border-radius: 50%; margin-right: 7px; vertical-align: 1px; }.hero-copy h2 { font-size: clamp(28px, 3.2vw, 40px); line-height: 1.05; letter-spacing: -1.5px; }.hero-copy > p { color: #c8dbd2; font-size: 13px; max-width: 390px; line-height: 1.5; margin: 12px 0 20px; }.hero-buttons { display: flex; gap: 9px; }.button { border: 0; display: inline-flex; align-items: center; justify-content: center; gap: 9px; padding: 10px 15px; border-radius: 9px; font-size: 12px; font-weight: 700; transition: transform .18s, filter .18s; }.button:hover { transform: translateY(-1px); filter: brightness(.98); }.button.primary { background: #fff; color: var(--forest); }.button.primary span { font-size: 16px; }.button.ghost { background: rgba(255,255,255,.12); color: #fff; border: 1px solid rgba(255,255,255,.19); }.store-chips { margin-top: 21px; display: flex; align-items: center; gap: 7px; font-size: 10px; color: #c5dad0; }.store-chips b { background: #fff; color: #1e478e; padding: 4px 6px; font-size: 8px; letter-spacing: .3px; border-radius: 4px; }.store-chips .biedronka { color: #d83329; }
.hero-food { position: relative; min-height: 250px; background: linear-gradient(120deg, rgba(14, 57, 45, 0) 0%, rgba(9, 43, 33, .2) 100%); }.orange-disc { position: absolute; height: 355px; width: 355px; border-radius: 50%; background: #f29938; top: -55px; left: 18px; }.food-plate { position: absolute; z-index: 1; top: 37px; left: 22px; width: 220px; min-height: 190px; padding: 10px; display: flex; flex-direction: column; align-items: center; justify-content: center; line-height: 1; filter: drop-shadow(10px 16px 11px rgba(47, 42, 16, .25)); transform: rotate(-5deg); }.food-plate > span { display: block; font-size: 132px; animation: hero-meal-float 4.8s ease-in-out infinite; }.food-plate > small { max-width: 190px; margin-top: 1px; padding: 7px 10px; overflow: hidden; border: 1px solid rgba(255,255,255,.7); border-radius: 999px; color: #234d3d; background: rgba(255,254,249,.9); box-shadow: 0 9px 22px rgba(42,52,37,.15); font-size: 9px; font-weight: 800; line-height: 1.2; text-align: center; text-overflow: ellipsis; white-space: nowrap; backdrop-filter: blur(9px); }.ingredient { position: absolute; z-index: 2; color: #4d8136; font-size: 37px; }.basil { top: 24px; left: 39px; }.tomato { color: #df3e32; font-size: 25px; right: 45px; top: 31px; }.leaf { bottom: 20px; right: 56px; font-size: 47px; }.floating-price { position: absolute; z-index: 4; background: #fffef9; color: var(--ink); border-radius: 10px; padding: 10px 13px; box-shadow: var(--shadow); bottom: 23px; right: 24px; min-width: 149px; }.floating-price span, .floating-price small { display: block; font-size: 9px; color: #76817c; }.floating-price strong { display: block; color: #2a6e4e; font-size: 15px; margin: 2px 0; }

.stats-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin: 17px 0 38px; }.stat-card { background: var(--card); border: 1px solid #edede8; padding: 17px; display: flex; gap: 12px; border-radius: 13px; min-width: 0; }.stat-icon { width: 36px; height: 36px; flex: 0 0 36px; display: grid; place-items: center; font-size: 20px; border-radius: 10px; }.mint { background: #dff2e8; color: #25845c; }.peach { background: #fff0df; color: #dc7a3b; }.lilac { background: #eeeafb; color: #7771b0; }.stat-card p { font-size: 10px; color: var(--muted); margin: 1px 0 4px; }.stat-card strong { font-family: "Playfair Display", serif; letter-spacing: -.5px; font-size: 21px; line-height: 1; }.stat-card strong small { font-family: "DM Sans", sans-serif; font-size: 12px; }.stat-card span { display: block; font-size: 9px; color: #8a938f; margin-top: 5px; white-space: nowrap; }.stat-card .trend { color: #3a9a6d; }

.promotions-section { margin: 0 0 39px; scroll-margin-top: 18px; }.promotion-heading { margin-bottom: 13px; }.promotion-actions { display: flex; align-items: center; gap: 18px; }.sync-status { color: #7c8883; font-size: 10px; }.sync-status i { display: inline-block; width: 6px; height: 6px; border-radius: 50%; background: #53af73; margin-right: 4px; vertical-align: 1px; }.promotion-board { background: #fff; border: 1px solid #e8ebe5; border-radius: 15px; display: grid; grid-template-columns: 218px minmax(0, 1fr); overflow: hidden; }.promotion-summary { background: #e4f3e9; padding: 21px; position: relative; overflow: hidden; }.promotion-summary:after { content: "✦"; position: absolute; bottom: -51px; right: -19px; font-size: 165px; color: rgba(63, 151, 101, .12); }.promo-summary-kicker { color: #498061; letter-spacing: 1px; font-size: 9px; font-weight: 700; }.promotion-summary strong { color: var(--forest); display: block; font-family: "Playfair Display", serif; letter-spacing: -.7px; font-size: 25px; margin-top: 9px; }.promotion-summary strong b:first-child { color: #268057; }.promotion-summary p { color: #50715f; font-size: 10px; line-height: 1.4; margin: 5px 0 12px; }.match-meter { height: 6px; background: rgba(60, 133, 93, .17); border-radius: 5px; overflow: hidden; }.match-meter span { display: block; height: 100%; width: 78%; border-radius: inherit; background: #339663; transition: width .3s ease; }.promotion-summary small { display: block; color: #55916d; font-size: 9px; margin-top: 6px; }.promotion-button { background: var(--forest); color: #fff; padding: 9px 10px; margin-top: 17px; width: 100%; font-size: 10px; position: relative; z-index: 1; }.promotion-catalogue { padding: 15px 18px 8px; min-width: 0; }.catalogue-header { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding-bottom: 9px; }.store-filters { display: flex; gap: 5px; }.store-filter { background: #f7f8f5; border: 1px solid #eceeea; color: #73807a; font-weight: 700; font-size: 10px; padding: 6px 9px; border-radius: 6px; }.store-filter.active { color: var(--forest); background: #e8f3ec; border-color: #d6ebde; }.store-filter b { color: #9aa39e; padding-left: 2px; }.mini-lidl, .mini-biedronka { font-size: 9px; display: inline-grid; width: 12px; height: 12px; place-items: center; border-radius: 3px; margin-right: 3px; background: #1e4a94; color: #ffe400; }.mini-biedronka { border-radius: 50%; background: #d83928; color: #fee800; font-size: 7px; }.catalogue-note { color: #929b96; font-size: 9px; white-space: nowrap; }.promotion-list { display: grid; grid-template-columns: repeat(3, 1fr); gap: 7px; }.promotion-item { background: #fbfcfa; border: 1px solid #eef0ec; padding: 8px; min-width: 0; border-radius: 8px; display: grid; grid-template-columns: 30px minmax(0, 1fr); column-gap: 7px; align-items: center; }.promotion-emoji { width: 30px; height: 30px; display: grid; place-items: center; background: var(--promo-bg, #f1eee2); border-radius: 7px; font-size: 17px; grid-row: 1 / span 2; }.promotion-item strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 10px; }.promotion-item small { color: #7f8b85; font-size: 8px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }.promo-prices { grid-column: 2; align-self: start; margin-top: 2px; }.promo-price { color: #2e825a; font-weight: 700; font-size: 10px; }.regular-price { color: #a2aaa5; font-size: 8px; text-decoration: line-through; margin-left: 3px; }.promo-savings { color: #cf6b35; background: #fff0e7; font-size: 7px; padding: 2px 3px; margin-left: 3px; border-radius: 3px; white-space: nowrap; }

.source-status { display: flex; align-items: center; gap: 5px; background: #f8faf7; border: 1px solid #eef1ec; color: #7b8681; font-size: 8px; border-radius: 6px; padding: 5px 7px; margin: 0 0 9px; }.source-dot { width: 5px; height: 5px; border-radius: 50%; background: #93a19a; }.source-status.connected .source-dot { background: #3c9d66; }.source-info { margin-left: auto; border: 0; background: transparent; color: #2d7654; font-size: 8px; font-weight: 700; padding: 0; }.leaflet-feed { border: 1px dashed #cde2d4; border-radius: 7px; padding: 7px; margin: 0 0 9px; background: #f7fbf8; }.leaflet-feed[hidden] { display: none; }.leaflet-feed strong { color: #2b6d4e; font-size: 9px; }.leaflet-feed p { margin: 2px 0 0; color: #74817b; font-size: 8px; }.leaflet-covers { display: flex; gap: 6px; margin-top: 6px; }.leaflet-cover { display: flex; align-items: center; gap: 5px; background: #fff; border: 1px solid #e7eee9; border-radius: 5px; padding: 3px 5px; font-size: 8px; color: #56645e; }.leaflet-cover img { width: 16px; height: 20px; border-radius: 2px; object-fit: cover; }

.section-heading { display: flex; align-items: flex-end; justify-content: space-between; margin: 0 0 15px; }.section-heading h2 { font-size: 25px; }.day-pager { display: flex; align-items: center; gap: 13px; background: #fff; border: 1px solid var(--line); border-radius: 9px; padding: 3px; font-size: 11px; font-weight: 700; color: #4c5954; }.day-pager button { border: 0; background: #f6f7f3; color: var(--forest); width: 23px; height: 23px; border-radius: 6px; font-size: 18px; line-height: 1; }.daily-nutrition { display: block; width: fit-content; margin-top: 7px; padding: 5px 7px; border-radius: 6px; color: #286347; background: #e9f5ed; font-size: 9px; font-weight: 700; }.daily-nutrition.over-limit { color: #9a5341; background: #fff0e9; }.meal-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 15px; }.meal-card { border-radius: 14px; background: #fff; border: 1px solid #edede8; padding: 12px; transition: transform .2s, box-shadow .2s; }.meal-card:hover, .recipe-card:hover { transform: translateY(-3px); box-shadow: var(--shadow); }.meal-image { border-radius: 10px; height: 135px; position: relative; overflow: hidden; display: flex; align-items: center; justify-content: center; font-size: 72px; }.meal-image:before { content: ""; position: absolute; height: 150px; width: 150px; border-radius: 50%; background: rgba(255,255,255,.25); left: -25px; bottom: -70px; }.meal-image span { position: relative; filter: drop-shadow(3px 7px 4px rgba(45, 33, 19, .2)); }.meal-time { position: absolute; z-index: 2; background: rgba(255,255,255,.9); border-radius: 6px; font-weight: 700; color: #49554f; top: 8px; left: 8px; padding: 4px 6px; font-size: 9px; }.save-button { position: absolute; top: 8px; right: 8px; background: rgba(255,255,255,.9); color: #3d5049; width: 28px; height: 28px; border-radius: 7px; border: 0; font-size: 14px; }.save-button.saved { color: var(--coral); background: #fff; }.meal-meta { display: flex; align-items: flex-start; justify-content: space-between; gap: 6px; padding: 12px 2px 3px; }.meal-meta h3 { font-size: 14px; line-height: 1.25; }.meal-meta p { color: var(--muted); font-size: 10px; margin: 5px 0 0; }.meal-price { color: #25845c; background: #e5f4ea; font-weight: 700; font-size: 9px; padding: 4px 6px; white-space: nowrap; border-radius: 5px; }.promo-tag { display: inline-flex; background: #fff0e5; color: #c66930; font-size: 9px; font-weight: 700; border-radius: 4px; padding: 3px 5px; margin: 7px 2px 0; }.meal-macros { display: block; margin: 7px 2px 0; color: #527264; font-size: 8px; font-weight: 700; line-height: 1.35; }.meal-macros.pending { color: #9b663d; font-weight: 600; }
.weekly-heading { margin-top: 40px; margin-bottom: 12px; }.weekly-actions { display: flex; align-items: center; gap: 9px; }.weekly-match { color: #44735b; background: #e5f3e9; border-radius: 6px; padding: 6px 8px; font-size: 9px; font-weight: 700; white-space: nowrap; }.weekly-generate { color: #fff; background: var(--forest); padding: 9px 11px; font-size: 10px; }.weekly-plan { margin-bottom: 15px; padding: 12px; border: 1px solid #e4ebe5; border-radius: 14px; background: linear-gradient(115deg, #f2f8f3, #fffdf9); }.weekly-plan-top { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 0 2px 11px; }.weekly-plan-top > div:first-child { display: grid; gap: 3px; }.weekly-plan-top strong { color: var(--forest); font-size: 12px; }.weekly-plan-top small { color: #79877f; font-size: 9px; }.week-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 7px; }.week-day { min-width: 0; min-height: 70px; display: grid; justify-items: center; align-content: center; gap: 3px; color: #77847d; background: rgba(255,255,255,.75); border: 1px solid #e5ebe5; border-radius: 9px; padding: 7px 4px; transition: .18s ease; }.week-day:hover { border-color: #bad7c4; background: #fff; }.week-day.active { color: #fff; border-color: var(--forest); background: var(--forest); box-shadow: 0 5px 13px rgba(19,78,61,.16); }.week-day span { font-size: 9px; font-weight: 700; }.week-day strong { font-family: "Playfair Display", serif; font-size: 17px; line-height: 1; }.week-day small { min-height: 14px; letter-spacing: 1px; font-size: 10px; white-space: nowrap; }

.recipe-heading { margin-top: 40px; }.text-button { color: var(--forest); background: transparent; padding: 5px 0; border: 0; font-size: 12px; font-weight: 700; }.text-button span { font-size: 16px; vertical-align: -1px; }.recipe-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }.recipe-card { overflow: hidden; background: #fff; border: 1px solid #edede8; border-radius: 13px; transition: transform .2s, box-shadow .2s; }.recipe-image { height: 115px; display: grid; place-items: center; font-size: 55px; position: relative; }.recipe-image span { filter: drop-shadow(3px 6px 3px rgba(40,33,21,.17)); }.recipe-image small { position: absolute; left: 8px; bottom: 8px; font-size: 8px; color: #3c6c54; font-weight: 700; background: rgba(255,255,255,.8); padding: 3px 5px; border-radius: 4px; }.recipe-info { padding: 10px; }.recipe-info h3 { font-size: 12px; line-height: 1.25; }.recipe-info p { margin: 5px 0 0; color: #87918d; font-size: 9px; }.protein { float: right; color: #5e5993; font-weight: 700; }

.shopping-section { margin-top: 42px; }.section-heading.compact { margin-bottom: 13px; }.list-count { font-size: 11px; color: #7d8782; }.list-count b { color: var(--forest); }.shopping-card { background: #fff; border: 1px solid #e9ebe4; border-radius: 14px; overflow: hidden; }.shop-header { display: flex; justify-content: space-between; align-items: center; padding: 14px 18px; background: #f4f9f4; }.shop-header > div { display: grid; grid-template-columns: 28px auto; column-gap: 9px; align-items: center; }.shop-badge { background: #1b4f94; color: #ffe53c; display: grid; place-items: center; width: 26px; height: 26px; border-radius: 7px; font-weight: 700; }.shop-header strong { font-size: 12px; }.shop-header small { grid-column: 2; color: #87928d; font-size: 9px; margin-top: -2px; }.shop-total { font-family: "Playfair Display", serif; font-size: 18px; color: var(--forest); }.shopping-list { padding: 6px 18px; margin: 0; list-style: none; display: grid; grid-template-columns: 1fr 1fr; gap: 0 24px; }.shopping-list li { min-width: 0; padding: 9px 0; border-bottom: 1px solid #f0f0ed; display: flex; align-items: center; gap: 9px; font-size: 11px; }.shopping-list input { appearance: none; width: 16px; height: 16px; flex: 0 0 16px; border: 1.5px solid #bfcbc4; border-radius: 5px; cursor: pointer; }.shopping-list input:checked { background: var(--forest); border-color: var(--forest); position: relative; }.shopping-list input:checked:after { content: "✓"; position: absolute; color: #fff; font-size: 11px; line-height: 13px; left: 2px; top: 0; }.shopping-list input:checked + label { text-decoration: line-through; color: #949c98; }.item-amount { color: #84908a; margin-left: auto; font-size: 10px; white-space: nowrap; }.deal { font-size: 8px; color: #d26837; background: #fff0e6; padding: 3px 4px; border-radius: 4px; margin-left: 3px; white-space: nowrap; }.shopping-footer { border-top: 1px solid #efefeb; padding: 13px 18px; display: flex; justify-content: space-between; align-items: center; font-size: 10px; color: #828c87; }.shopping-footer b { color: #32825c; }.share-shopping { color: #fff; background: #236c4d; padding: 9px 13px; }.share-shopping span { font-size: 16px; }.shopping-share-fallback { display: flex; align-items: center; gap: 8px; }.shopping-share-fallback .text-button { color: #517264; font-size: 10px; white-space: nowrap; }.shopping-share-fallback .whatsapp-link { color: #198754; }
.pantry-strip { background: #f5eee0; border-radius: 13px; padding: 16px 18px; margin-top: 28px; display: flex; align-items: center; gap: 12px; }.pantry-icon { background: #e4d4b5; color: #8a6631; width: 35px; height: 35px; display: grid; place-items: center; border-radius: 9px; }.pantry-strip strong { font-size: 12px; }.pantry-strip p { margin: 3px 0 0; font-size: 10px; color: #887d6e; }.pantry-strip .text-button { margin-left: auto; color: #8b6130; white-space: nowrap; }
.pantry-modal { width: min(600px, calc(100% - 28px)); max-height: min(720px, calc(100vh - 28px)); overflow: auto; position: relative; border: 0; background: #fffdf9; color: var(--ink); padding: 26px; border-radius: 18px; box-shadow: 0 25px 80px rgba(11, 39, 28, .28); }.pantry-modal::backdrop { background: rgba(12, 36, 28, .56); backdrop-filter: blur(3px); }.close-pantry { position: absolute; right: 14px; top: 14px; width: 30px; height: 30px; border: 0; border-radius: 50%; background: #f2f4f0; color: var(--forest); font-size: 21px; }.pantry-modal-head { padding-right: 42px; }.pantry-modal-head h2 { font-size: 30px; }.pantry-modal-head > p:last-child { color: #75817b; font-size: 12px; line-height: 1.45; margin: 9px 0 17px; }.pantry-insights { display: grid; grid-template-columns: repeat(2, 1fr); gap: 9px; padding: 12px; background: #eff6ef; border-radius: 10px; }.pantry-insights div { display: grid; gap: 2px; }.pantry-insights strong { color: #235f43; font-family: "Playfair Display", serif; font-size: 23px; }.pantry-insights span { color: #5f776a; font-size: 9px; }.pantry-list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; list-style: none; padding: 15px 0; margin: 0; }.pantry-list li { min-width: 0; display: grid; grid-template-columns: 31px minmax(0, 1fr) 24px 24px; align-items: center; gap: 8px; padding: 9px; background: #fbfcfa; border: 1px solid #edf0eb; border-radius: 9px; }.pantry-product-emoji { display: grid; place-items: center; width: 31px; height: 31px; border-radius: 8px; background: #f2eadc; font-size: 16px; }.pantry-list strong { display: block; color: #38483f; font-size: 10px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.pantry-list small { display: block; color: #87928c; font-size: 8px; margin-top: 2px; }.edit-pantry-item, .remove-pantry-item { width: 24px; height: 24px; border: 0; border-radius: 6px; font-size: 13px; line-height: 1; }.edit-pantry-item { color: #416b57; background: #edf6ef; }.remove-pantry-item { color: #956151; background: #fff0e8; font-size: 16px; }.empty-pantry { grid-column: 1 / -1; display: block !important; color: #87928c; text-align: center; font-size: 11px; padding: 18px !important; }.pantry-form { border-top: 1px solid #edf0eb; padding-top: 16px; }.pantry-form h3 { font-size: 13px; margin-bottom: 10px; }.pantry-form-grid { display: grid; grid-template-columns: minmax(0, 1fr) 110px 88px; gap: 9px; }.pantry-form label { display: block; color: #4b5b54; font-size: 10px; font-weight: 700; }.pantry-form input, .pantry-form select { display: block; width: 100%; color: #31423a; background: #fbfcfa; border: 1px solid #dfe6df; border-radius: 7px; padding: 9px; margin-top: 5px; font: inherit; font-size: 12px; }.pantry-form-footer { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 15px; }.pantry-form-footer > span { display: flex; gap: 10px; }.pantry-add { color: #fff; background: var(--forest); }.pantry-coverage, .package-note { display: block; color: #8a7560; font-size: 8px; margin-top: 2px; }.package-note { color: #89948e; }.savings-details { display: block; margin-top: 3px; color: #74817b; font-size: 8px; }.shopping-list li label { min-width: 0; }.shopping-list li label strong { display: block; font-size: 11px; font-weight: 600; }.all-stocked { grid-column: 1 / -1; justify-content: center !important; color: #387357; background: #f2faf4; border: 1px dashed #bfdfc9 !important; border-radius: 8px; font-weight: 700; }

.modal { position: relative; border: 0; background: #fffdf9; padding: 0; max-width: 480px; width: calc(100% - 32px); border-radius: 18px; box-shadow: 0 25px 80px rgba(11, 39, 28, .28); overflow: hidden; }.modal::backdrop { background: rgba(12, 36, 28, .56); backdrop-filter: blur(3px); }.close-modal { position: absolute; z-index: 2; right: 12px; top: 12px; background: #fff; border: 0; border-radius: 50%; width: 29px; height: 29px; font-size: 22px; line-height: 21px; color: var(--forest); }.modal-hero { height: 180px; display: grid; place-items: center; font-size: 105px; }.modal-body { padding: 24px; }.modal-body h2 { font-size: 28px; }.modal-body > p { color: #697672; font-size: 13px; line-height: 1.5; margin: 10px 0 17px; }.modal-facts { display: flex; gap: 8px; flex-wrap: wrap; }.modal-facts span { padding: 6px 8px; background: #ecf4ee; color: #286347; border-radius: 6px; font-size: 10px; font-weight: 700; }.modal-body ol { padding-left: 18px; font-size: 12px; color: #50605a; line-height: 1.6; }.modal-cta { display: flex; justify-content: space-between; align-items: center; margin-top: 17px; }.modal-cta strong { font-family: "Playfair Display", serif; font-size: 20px; color: var(--forest); }
.toast { position: fixed; z-index: 20; bottom: 24px; left: 50%; width: max-content; max-width: min(420px, calc(100vw - 28px)); transform: translate(-50%, 24px); background: #193f34; color: #fff; padding: 11px 16px; border-radius: 9px; font-size: 12px; line-height: 1.4; text-align: center; box-shadow: var(--shadow); opacity: 0; pointer-events: none; transition: .25s; }.toast.show { transform: translate(-50%, 0); opacity: 1; }
.icon-button:not(.has-unread) i { display: none; }.notifications-modal { width: min(520px, calc(100% - 28px)); max-height: min(700px, calc(100vh - 28px)); overflow: auto; position: relative; border: 0; background: #fffdf9; color: var(--ink); padding: 26px; border-radius: 18px; box-shadow: 0 25px 80px rgba(11, 39, 28, .28); }.notifications-modal::backdrop { background: rgba(12, 36, 28, .56); backdrop-filter: blur(3px); }.close-notifications { position: absolute; right: 14px; top: 14px; width: 30px; height: 30px; border: 0; border-radius: 50%; background: #f2f4f0; color: var(--forest); font-size: 21px; }.notifications-head { padding-right: 42px; }.notifications-head h2 { font-size: 29px; }.notifications-head > p:last-child { margin: 9px 0 18px; color: #75817b; font-size: 12px; line-height: 1.45; }.notifications-head p strong { color: #276747; }.notification-settings { display: grid; gap: 8px; padding: 12px; background: #f2f7f2; border: 1px solid #e2ece2; border-radius: 10px; }.notification-settings label { position: relative; cursor: pointer; }.notification-settings input { position: absolute; opacity: 0; }.notification-settings span { display: block; padding: 9px 10px 9px 35px; border: 1px solid #e1e9e1; border-radius: 8px; background: #fff; color: #66736d; font-size: 10px; font-weight: 700; }.notification-settings span::before { content: ''; position: absolute; left: 11px; top: 10px; width: 13px; height: 13px; border: 1.5px solid #b6c5bc; border-radius: 4px; }.notification-settings input:checked + span { border-color: #a8d8ba; color: #15563f; background: #e3f2e9; }.notification-settings input:checked + span::before { content: '✓'; display: grid; place-items: center; border-color: #2b7b56; color: #fff; background: #2b7b56; font-size: 10px; }.notifications-toolbar { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 18px 1px 9px; }.notifications-toolbar strong { font-size: 12px; }.notifications-toolbar .text-button { font-size: 10px; }.notification-list { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }.notification-list li { display: grid; grid-template-columns: 34px minmax(0, 1fr) auto; align-items: center; gap: 10px; padding: 11px; border: 1px solid #e9eee8; border-radius: 10px; background: #fff; }.notification-list li.unread { border-color: #cde3d2; background: #f7fbf7; }.notification-icon { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 9px; background: #e8f3eb; font-size: 16px; }.notification-list strong { display: block; color: #3c4c44; font-size: 11px; }.notification-list p { margin: 3px 0 0; color: #77837e; font-size: 9px; line-height: 1.35; }.notification-list small { display: block; margin-top: 4px; color: #97a19b; font-size: 8px; }.notification-open { color: #226345; background: transparent; border: 0; font: inherit; font-size: 9px; font-weight: 700; white-space: nowrap; }.notification-empty { display: block !important; padding: 20px !important; color: #839089; text-align: center; font-size: 11px; }.notifications-production-note { margin: 15px 0 0; color: #8b8072; font-size: 9px; line-height: 1.45; }
.receipt-entry { position: relative; z-index: 1; display: block; width: 100%; margin-top: 11px; padding: 7px 8px; border: 1px solid rgba(151, 95, 28, .24); border-radius: 7px; background: rgba(255,255,255,.52); color: #86571d; font-size: 9px; font-weight: 700; text-align: left; }.receipt-modal { width: min(560px, calc(100% - 28px)); max-height: min(760px, calc(100vh - 28px)); overflow: auto; position: relative; border: 0; background: #fffdf9; color: var(--ink); padding: 26px; border-radius: 18px; box-shadow: 0 25px 80px rgba(11, 39, 28, .28); }.receipt-modal::backdrop { background: rgba(12, 36, 28, .56); backdrop-filter: blur(3px); }.close-receipt { position: absolute; right: 14px; top: 14px; width: 30px; height: 30px; border: 0; border-radius: 50%; background: #f2f4f0; color: var(--forest); font-size: 21px; }.receipt-head { padding-right: 42px; }.receipt-head h2 { font-size: 29px; }.receipt-head > p:last-child { color: #75817b; font-size: 12px; line-height: 1.45; margin: 9px 0 18px; }.loyalty-overview { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; padding: 12px; border-radius: 10px; background: #fff4e3; }.loyalty-overview div { min-width: 0; display: grid; gap: 2px; }.loyalty-overview strong { color: #86571d; font-family: "Playfair Display", serif; font-size: 23px; }.loyalty-overview span { color: #98764d; font-size: 8px; line-height: 1.25; }.receipt-form { display: grid; gap: 12px; padding: 16px 0; }.receipt-form label { display: block; color: #4b5b54; font-size: 10px; font-weight: 700; }.receipt-form label > span, .receipt-form label > small { display: block; margin-top: 4px; color: #87928c; font-size: 9px; font-weight: 400; line-height: 1.4; }.receipt-upload { padding: 11px; border: 1px dashed #d7c6aa; border-radius: 9px; background: #fffaf2; }.receipt-upload input { display: block; max-width: 100%; margin-top: 9px; color: #6e766f; font: inherit; font-size: 9px; }.receipt-upload small { color: #8f7858 !important; }.receipt-form textarea { display: block; width: 100%; min-height: 80px; resize: vertical; margin-top: 7px; padding: 9px; border: 1px solid #dfe6df; border-radius: 8px; background: #fbfcfa; color: #31423a; font: inherit; font-size: 11px; line-height: 1.4; }.receipt-submit { justify-self: start; color: #fff; background: var(--forest); }.receipt-result { padding: 11px; border: 1px solid #cfe5d5; border-radius: 9px; background: #f1f8f2; color: #316348; font-size: 10px; line-height: 1.45; }.receipt-result strong { display: block; margin-bottom: 3px; font-size: 12px; }.receipt-pantry-review { display: grid; gap: 7px; margin-top: 11px; }.receipt-pantry-review > p { margin: 0; color: #547264; font-size: 9px; }.receipt-pantry-candidate { display: grid; grid-template-columns: 20px minmax(0, 1fr) 78px 68px; align-items: end; gap: 6px; margin: 0; padding: 8px; border: 1px solid #cfe1d4; border-radius: 8px; background: #fff; }.receipt-pantry-candidate label { display: grid; gap: 3px; color: #5d7568; font-size: 8px; font-weight: 700; }.receipt-pantry-candidate input, .receipt-pantry-candidate select { min-width: 0; width: 100%; padding: 6px; border: 1px solid #dce7df; border-radius: 6px; background: #fbfcfa; color: #33463c; font: inherit; font-size: 10px; }.receipt-pantry-candidate .receipt-include { width: auto; margin: 0 0 8px; }.receipt-pantry-save { justify-self: start; margin-top: 3px; color: #fff; background: #28704d; }.receipt-history-head { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; padding: 5px 0 8px; }.receipt-history-head strong { font-size: 12px; }.receipt-history-head small { color: #8b9690; font-size: 8px; text-align: right; }.receipt-history { display: grid; gap: 7px; margin: 0; padding: 0; list-style: none; }.receipt-history li { display: grid; grid-template-columns: 28px minmax(0, 1fr) auto; align-items: center; gap: 9px; padding: 9px; border: 1px solid #edf0eb; border-radius: 8px; background: #fff; }.receipt-history-icon { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 8px; background: #eff5ed; font-size: 14px; }.receipt-history strong { display: block; color: #44534b; font-size: 10px; }.receipt-history small { display: block; margin-top: 2px; color: #8b9690; font-size: 8px; }.receipt-history b { color: #2d7651; font-size: 10px; white-space: nowrap; }.receipt-empty { display: block !important; padding: 17px !important; color: #8b9690; text-align: center; font-size: 10px; }.receipt-production-note { margin: 14px 0 0; color: #8b8072; font-size: 9px; line-height: 1.45; }
.receipt-consent { display: grid !important; grid-template-columns: 17px minmax(0, 1fr); align-items: start; gap: 8px; padding: 10px; border: 1px solid #dce7df; border-radius: 8px; background: #f7fbf7; color: #476254 !important; font-size: 9px !important; line-height: 1.4; }.receipt-consent input { width: 14px; height: 14px; margin: 1px 0 0; accent-color: #28704d; }.receipt-consent span { margin: 0 !important; color: inherit !important; font-size: inherit !important; }.receipt-result > span { display: block; }.receipt-result-actions { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 9px; }.receipt-result-actions .text-button { padding: 0; font-size: 9px; }.receipt-danger { color: #a53b32 !important; }.receipt-pantry-decided { grid-template-columns: 20px minmax(0, 1fr) auto; align-items: center; background: #fbfcfa; }.receipt-pantry-decided strong { display: block; color: #405149; font-size: 10px; }.receipt-pantry-decided small { display: block; margin-top: 2px; color: #7b8981; font-size: 8px; }.receipt-pantry-decided input { width: auto; margin: 0; }.receipt-decision-status { color: #5a7666; font-size: 8px; font-weight: 700; white-space: nowrap; }
.promotion-empty { grid-column: 1 / -1; margin: 0; padding: 18px 12px; border: 1px dashed #d8e5da; border-radius: 8px; color: #63766b; background: #f8fbf8; font-size: 10px; line-height: 1.45; text-align: center; }

.preference-summary { display: flex; gap: 5px; flex-wrap: wrap; margin-top: 14px; }.preference-summary span { background: rgba(255,255,255,.10); border: 1px solid rgba(255,255,255,.13); color: #d4e8de; padding: 4px 6px; border-radius: 5px; font-size: 8px; }.method-tag { color: #687891; background: #edf1f7; font-size: 8px; font-weight: 700; border-radius: 4px; padding: 3px 5px; }
.preferences-modal { position: relative; width: min(760px, calc(100% - 28px)); max-height: calc(100dvh - 28px); overflow: auto; border: 0; background: #fffdf9; padding: 28px 30px 0; border-radius: 20px; color: var(--ink); box-shadow: 0 25px 80px rgba(11, 39, 28, .28); }.preferences-modal::backdrop { background: rgba(12, 36, 28, .56); backdrop-filter: blur(3px); }.close-preferences { position: absolute; z-index: 3; right: 18px; top: 18px; width: 32px; height: 32px; border: 0; border-radius: 50%; background: #f0f4ef; color: var(--forest); font-size: 22px; line-height: 1; }.preferences-head { padding-right: 48px; }.preferences-head h2 { font-size: 31px; }.preferences-head > p:last-child { max-width: 520px; color: #75817b; font-size: 12px; line-height: 1.5; margin: 9px 0 20px; }.preferences-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }.preference-card { min-width: 0; padding: 14px; border: 1px solid #e6ece6; border-radius: 13px; background: #fff; }.preference-card h3, .preference-group h3 { color: #334a3e; font-size: 12px; margin: 0 0 9px; }.preference-hint { color: #7c8982; font-size: 9px; line-height: 1.4; margin: -3px 0 9px; }.preference-options, .diet-options, .taste-group { display: flex; gap: 7px; flex-wrap: wrap; }.preference-chip { border: 1px solid #e0e7e0; color: #627069; background: #f8faf7; border-radius: 9px; padding: 8px 10px; font-size: 10px; font-weight: 700; }.preference-chip.selected { color: #15563f; background: #e3f2e9; border-color: #a8d8ba; box-shadow: inset 0 0 0 1px rgba(35,108,77,.06); }.diet-options label, .taste-group label { position: relative; cursor: pointer; }.diet-options input, .taste-group input { position: absolute; opacity: 0; }.diet-options span, .taste-group span { display: inline-block; color: #66736d; background: #f7f9f6; border: 1px solid #e5eae4; border-radius: 9px; padding: 8px 10px; font-size: 10px; font-weight: 700; transition: .15s ease; }.diet-options input:focus-visible + span, .taste-group input:focus-visible + span { outline: 2px solid #5c9578; outline-offset: 2px; }.diet-options input:checked + span, .taste-group input:checked + span { color: #15563f; background: #e3f2e9; border-color: #a8d8ba; }.preference-group { padding: 17px 0; border-top: 1px solid #e9eee8; }.preference-practical { margin-top: 18px; }.preference-compact-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 13px 18px; }.preference-field { min-width: 0; display: grid; align-content: start; gap: 7px; }.preference-field > span { color: #68776f; font-size: 9px; font-weight: 700; }.preference-select select { width: 100%; appearance: none; color: #395448; background: #f7f9f6; border: 1px solid #e1e8e1; border-radius: 9px; padding: 9px 30px 9px 10px; font: inherit; font-size: 10px; font-weight: 700; }.preference-details { margin: 0 0 4px; border: 1px solid #dfe8df; border-radius: 13px; background: #f7faf6; overflow: hidden; }.preference-details summary { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 13px 15px; color: #315442; cursor: pointer; list-style: none; }.preference-details summary::-webkit-details-marker { display: none; }.preference-details summary span { display: grid; gap: 2px; }.preference-details summary strong { font-size: 11px; }.preference-details summary small { color: #7b8881; font-size: 9px; font-weight: 500; }.preference-details summary i { font-style: normal; font-size: 18px; transition: transform .18s ease; }.preference-details[open] summary i { transform: rotate(180deg); }.preference-details[open] summary { border-bottom: 1px solid #e2eae2; }.preferences-grid-secondary { padding: 12px; }.preferences-grid-secondary + .preference-group, .preference-details > .preference-group { margin: 0 12px; }.preferences-footer { position: sticky; z-index: 2; bottom: 0; display: flex; align-items: center; justify-content: space-between; gap: 14px; margin: 20px -30px 0; padding: 13px 30px calc(13px + env(safe-area-inset-bottom)); border-top: 1px solid #e7ece6; background: rgba(255,253,249,.96); backdrop-filter: blur(10px); }.profile-apply { background: var(--forest); color: #fff; }
.vision-section { scroll-margin-top: 20px; margin: 2px 0 42px; }.vision-heading { margin-bottom: 13px; }.human-loop { color: #386f54; background: #e4f2e8; border-radius: 5px; padding: 5px 7px; font-size: 9px; font-weight: 700; }.human-loop i { color: #53a874; font-style: normal; }.vision-overview { border-radius: 14px; overflow: hidden; background: #fff; border: 1px solid #e6eae5; }.schedule-card { padding: 16px 18px; display: flex; align-items: center; gap: 10px; border-bottom: 1px solid #edf0eb; }.schedule-icon { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 9px; background: #e9eefb; color: #6261a5; font-size: 19px; }.schedule-card small { display: block; color: #8a9690; font-size: 8px; font-weight: 700; letter-spacing: .8px; }.schedule-card strong { display: block; margin-top: 2px; font-size: 12px; }.schedule-card p { margin: 3px 0 0; color: #7b8781; font-size: 9px; }.schedule-actions { display: flex; align-items: center; gap: 9px; margin-left: auto; }.production-moderation-open { font-size: 10px; white-space: nowrap; }.vision-run { color: #fff; background: #1a5a43; font-size: 10px; white-space: nowrap; }.vision-flow { display: grid; grid-template-columns: repeat(5, 1fr); margin: 0; padding: 14px 18px; list-style: none; gap: 10px; }.vision-flow li { position: relative; display: grid; grid-template-columns: 20px 1fr; column-gap: 6px; align-items: start; }.vision-flow li:not(:last-child):after { content: ''; position: absolute; width: 24px; height: 1px; background: #d7e4dc; right: -16px; top: 9px; }.vision-flow span { display: grid; place-items: center; grid-row: 1 / span 2; width: 20px; height: 20px; color: #3a7658; background: #e5f2e9; border-radius: 50%; font-size: 8px; font-weight: 700; }.vision-flow strong { font-size: 10px; }.vision-flow small { color: #8b9690; font-size: 8px; margin-top: 2px; line-height: 1.2; }.moderation-card { margin-top: 13px; background: #fff; border: 1px solid #e6eae5; border-radius: 14px; overflow: hidden; }.moderation-header { min-height: 57px; padding: 12px 16px; display: flex; align-items: center; gap: 18px; }.moderation-header > div:first-child { display: grid; }.moderation-header > div:first-child strong { color: var(--forest); font-size: 12px; }.moderation-header > div:first-child span { color: #84908a; font-size: 9px; margin-top: 3px; }.moderation-stats { display: flex; align-items: center; gap: 7px; flex: 1; }.moderation-stats span { color: #77837d; border-radius: 4px; background: #f5f7f4; padding: 4px 5px; font-size: 8px; }.moderation-stats b { color: #395a4b; }.moderation-stats .review-count { color: #9a612e; background: #fff2e2; }.moderation-stats .approved-count { color: #377257; background: #e7f3eb; }.moderation-actions { display: flex; align-items: center; gap: 10px; }.moderation-actions .text-button { font-size: 10px; }.moderation-actions .text-button:disabled, .publish-button:disabled { cursor: not-allowed; opacity: .42; }.publish-button { background: var(--forest); color: #fff; padding: 8px 10px; font-size: 10px; }.moderation-notice { padding: 8px 16px; color: #806138; background: #fff8ec; border-top: 1px solid #f5ecdb; border-bottom: 1px solid #f5ecdb; font-size: 9px; line-height: 1.5; }.moderation-notice strong { color: #765627; }.moderation-notice span { display: block; margin-top: 2px; color: #99815b; }.table-wrap { overflow-x: auto; }.review-table { width: 100%; min-width: 650px; border-collapse: collapse; text-align: left; }.review-table th { color: #84908a; background: #fbfcfa; font-size: 8px; letter-spacing: .6px; text-transform: uppercase; padding: 9px 16px; }.review-table td { border-top: 1px solid #eff1ee; padding: 10px 16px; vertical-align: middle; }.review-table td strong { display: block; color: #34413c; font-size: 10px; }.review-table td small { display: block; color: #89938e; font-size: 8px; margin-top: 3px; }.confidence { border-radius: 4px; padding: 4px 5px; font-size: 8px; white-space: nowrap; }.confidence.high { color: #28704f; background: #e5f4eb; }.confidence.medium { color: #a4612d; background: #fff0e3; }.review-status { display: inline-block; border-radius: 4px; font-size: 8px; font-weight: 700; padding: 4px 5px; white-space: nowrap; }.review-status.auto { color: #346c91; background: #e8f1f8; }.review-status.review { color: #a4612d; background: #fff0e3; }.review-status.approved { color: #2d7c55; background: #e4f4e9; }.review-status.published { color: #6a6695; background: #ecebf8; }.review-row { background: transparent; border: 0; color: #226345; font-size: 9px; font-weight: 700; padding: 4px 0; }.review-modal { position: relative; width: min(460px, calc(100% - 28px)); border: 0; background: #fffdf9; padding: 25px; border-radius: 17px; box-shadow: 0 25px 80px rgba(11, 39, 28, .28); }.review-modal::backdrop { background: rgba(12, 36, 28, .56); backdrop-filter: blur(3px); }.close-review { position: absolute; right: 13px; top: 13px; width: 29px; height: 29px; background: #f3f5f1; border: 0; border-radius: 50%; color: var(--forest); font-size: 20px; }.review-modal h2 { font-size: 25px; margin-bottom: 7px; }.review-source { color: #78847d; font-size: 10px; line-height: 1.4; margin-bottom: 17px; }.review-modal label { display: block; color: #4b5b54; font-size: 10px; font-weight: 700; margin-top: 11px; }.review-modal input { display: block; width: 100%; color: #31423a; background: #fbfcfa; border: 1px solid #dfe6df; border-radius: 7px; padding: 9px; margin-top: 5px; font: inherit; font-size: 12px; }.review-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }.review-helper { color: #7e8882; font-size: 9px; line-height: 1.4; margin: 14px 0; }.review-save { color: #fff; background: var(--forest); width: 100%; }
.production-moderation-modal { position: relative; width: min(920px, calc(100% - 28px)); max-height: calc(100vh - 28px); overflow: auto; border: 0; padding: 25px; color: var(--ink); background: #fffdf9; border-radius: 17px; box-shadow: 0 25px 80px rgba(11, 39, 28, .28); }.production-moderation-modal::backdrop { background: rgba(12, 36, 28, .56); backdrop-filter: blur(3px); }.close-production-moderation { position: sticky; z-index: 2; float: right; top: -11px; right: -11px; width: 29px; height: 29px; border: 0; border-radius: 50%; color: var(--forest); background: #f3f5f1; font-size: 20px; }.production-moderation-head { padding-right: 35px; }.production-moderation-head h2 { margin: 2px 0 7px; font-size: 25px; }.production-moderation-head > p:last-child { color: #78847d; font-size: 10px; line-height: 1.45; }.production-import-list { display: grid; gap: 8px; margin-top: 17px; }.production-import-item { display: flex; align-items: center; gap: 12px; padding: 12px; border: 1px solid #e3e9e3; border-radius: 9px; background: #fff; }.production-import-item > div { display: grid; gap: 3px; flex: 1; }.production-import-item strong { color: #315344; font-size: 11px; }.production-import-item small { color: #7c8881; font-size: 9px; }.production-import-open { white-space: nowrap; }.production-import-toolbar { display: flex; align-items: start; gap: 12px; margin: 16px 0 10px; }.production-import-toolbar > div { display: grid; gap: 3px; }.production-import-toolbar strong { color: #315344; font-size: 13px; }.production-import-toolbar small { color: #7c8881; font-size: 9px; }.production-food-controls { display:flex; align-items:center; gap:10px; margin:12px 0 0; font-size:10px; color:#53625b; }.production-food-controls label { display:flex; align-items:center; gap:6px; font-weight:700; }.production-food-controls select, .production-offer-form select { border:1px solid #dfe6df; border-radius:7px; background:#fff; color:#31423a; padding:7px; font:inherit; font-size:10px; }.production-food-controls span { color:#78847d; }.production-review-actions { display: flex; flex-wrap:wrap; justify-content: flex-end; gap: 9px; margin: 10px 0; }.production-food-helper { margin:0 0 10px; color:#78847d; font-size:9px; line-height:1.4; }.production-offer-form { margin-top: 15px; padding: 16px; border: 1px solid #d9e8dd; border-radius: 10px; background: #f5faf6; }.production-offer-form h3 { font-size: 18px; }.production-offer-form label { display: block; margin-top: 10px; color: #4b5b54; font-size: 10px; font-weight: 700; }.production-offer-form input { display: block; width: 100%; margin-top: 5px; padding: 9px; border: 1px solid #dfe6df; border-radius: 7px; color: #31423a; background: #fff; font: inherit; font-size: 12px; }.production-offer-form select { display:block; width:100%; margin-top:5px; }.production-form-actions { display: flex; justify-content: flex-end; gap: 9px; margin-top: 14px; }.production-form-actions .review-save { width: auto; }
.moderation-stats .published-count { color: #62608b; background: #ecebf8; }
.account-modal { position: relative; width: min(500px, calc(100% - 28px)); border: 0; background: #fffdf9; padding: 26px; border-radius: 18px; color: var(--ink); box-shadow: 0 25px 80px rgba(11, 39, 28, .28); }.account-modal::backdrop { background: rgba(12, 36, 28, .56); backdrop-filter: blur(3px); }.account-modal [hidden] { display: none !important; }.close-account { position: absolute; right: 14px; top: 14px; width: 30px; height: 30px; border: 0; border-radius: 50%; background: #f2f4f0; color: var(--forest); font-size: 21px; }.account-head { padding-right: 42px; }.account-head h2 { font-size: 27px; }.account-head > p:last-child { margin: 9px 0 17px; color: #75817b; font-size: 12px; line-height: 1.45; }.account-status { min-height: 18px; margin: 0 0 8px; color: #4f7462; font-size: 10px; line-height: 1.4; }.account-status.error { color: #9a5341; }.account-form { display: grid; gap: 10px; }.account-form label { display: grid; gap: 5px; color: #4b5b54; font-size: 10px; font-weight: 700; }.account-form input { width: 100%; padding: 9px; border: 1px solid #dfe6df; border-radius: 7px; color: #31423a; background: #fbfcfa; font: inherit; font-size: 12px; }.account-actions { display: flex; align-items: center; justify-content: flex-end; gap: 10px; margin-top: 4px; }.account-sign-in, .account-sign-out { color: #fff; background: var(--forest); }.account-connected { display: grid; gap: 12px; padding: 13px; border: 1px solid #d7e9da; border-radius: 10px; background: #f1f8f2; }.account-connected strong { display: block; color: #245d43; font-size: 12px; }.account-connected small { display: block; margin-top: 3px; color: #668073; font-size: 9px; }.account-connected .account-actions { justify-content: flex-start; margin: 0; }.account-delete { justify-self: start; border: 0; background: transparent; color: #a15b47; padding: 3px 0; font: inherit; font-size: 10px; font-weight: 700; }.account-note { margin: 15px 0 0; color: #8b8072; font-size: 9px; line-height: 1.45; }
.account-modal { width: min(850px, calc(100% - 28px)); max-height: min(900px, calc(100dvh - 28px)); overflow-y: auto; }
.packages-panel { margin-top: 18px; padding: 18px; border: 1px solid #e6ebe4; border-radius: 16px; background: #fbfcf8; }
.packages-heading { display: flex; align-items: end; justify-content: space-between; gap: 12px; }
.packages-heading .eyebrow { margin: 0 0 4px; }
.packages-heading h3 { margin: 0; color: var(--forest); font-family: "Playfair Display", serif; font-size: 23px; }
.package-period { display: flex; gap: 3px; padding: 3px; border-radius: 999px; background: #edf2ec; }
.package-period button { border: 0; border-radius: 999px; padding: 8px 12px; background: transparent; color: #486052; font: inherit; font-size: 11px; cursor: pointer; }
.package-period button.active { background: #fff; color: var(--forest); box-shadow: 0 1px 5px #153b231b; font-weight: 700; }
.package-current { margin: 12px 0; color: #456851; font-size: 12px; font-weight: 700; }
.package-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.package-card { display: flex; flex-direction: column; gap: 8px; min-width: 0; padding: 15px; border: 1px solid #dfe8dd; border-radius: 13px; background: #fff; }
.package-card.featured { border-color: #9ac8a8; background: #f2f9f1; }
.package-card.current { box-shadow: inset 0 0 0 2px #3a8054; }
.package-kicker { color: #6b8b72; font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .07em; }
.package-card h4 { margin: 0; color: var(--forest); font-family: "Playfair Display", serif; font-size: 22px; }
.package-card strong { color: #24643d; font-size: 14px; }
.package-card p { flex: 1; margin: 0; color: #607168; font-size: 11px; line-height: 1.5; }
.package-features { flex: 1; display: grid; gap: 6px; margin: 0; padding: 0; list-style: none; color: #607168; font-size: 10px; line-height: 1.4; }
.package-features li { position: relative; padding-left: 15px; }
.package-features li::before { content: "✓"; position: absolute; left: 0; color: #3a8054; font-weight: 800; }
.package-buy { width: 100%; border: 0; border-radius: 9px; padding: 10px 12px; color: #fff; background: var(--forest); font: inherit; font-size: 10px; font-weight: 800; cursor: pointer; }
.package-buy:disabled { color: #718078; background: #e8ede8; cursor: not-allowed; }
.package-action { border-top: 1px solid #e6ece4; padding-top: 10px; color: #52685a; font-size: 10px; line-height: 1.35; }
.package-disclaimer { margin: 12px 0 0; color: #7a857b; font-size: 10px; line-height: 1.5; }
.receipt-quota { margin: 0 0 10px; padding: 9px 11px; border-radius: 9px; background: #eef7ed; color: #315d3e; font-size: 12px; font-weight: 700; }
@media (max-width: 600px) { .packages-panel { padding: 13px; } .packages-heading { align-items: flex-start; flex-direction: column; } .package-grid { grid-template-columns: 1fr; } .package-card { gap: 5px; } }
.beta-invite-panel { display: grid; gap: 8px; padding: 12px; border: 1px solid #c7dfcc; border-radius: 9px; background: #fafffa; }.beta-invite-panel > p { margin: 0; color: #668073; font-size: 10px; line-height: 1.45; }.beta-invite-link { display: grid; gap: 8px; }.beta-invite-link input { width: 100%; padding: 8px; border: 1px solid #d7e9da; border-radius: 7px; background: #fff; color: #40574a; font: inherit; font-size: 10px; }
.account-mode-tabs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px; margin: 0 0 13px; padding: 4px; border: 1px solid #dce8de; border-radius: 9px; background: #eff5ef; }.account-mode-tabs button { border: 0; border-radius: 6px; padding: 8px 9px; color: #60736a; background: transparent; font: inherit; font-size: 11px; font-weight: 700; }.account-mode-tabs button.active { color: #fff; background: var(--forest); box-shadow: 0 2px 5px rgba(17, 79, 56, .18); }
.referral-panel { display: grid; gap: 8px; padding: 12px; border: 1px solid #d8d0f0; border-radius: 9px; background: #fbfaff; }.referral-panel > p { margin: 0; color: #625d80; font-size: 10px; line-height: 1.45; }.referral-panel > small { color: #77718b; font-size: 9px; line-height: 1.45; }.referral-progress { height: 6px; overflow: hidden; border-radius: 99px; background: #e8e4f5; }.referral-progress span { display: block; width: 0; height: 100%; border-radius: inherit; background: #7a6fb2; transition: width .2s ease; }.referral-link { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 8px; }.referral-link input { min-width: 0; width: 100%; padding: 8px; border: 1px solid #ded9ee; border-radius: 7px; background: #fff; color: #514d69; font: inherit; font-size: 10px; }.referral-link .text-button { white-space: nowrap; font-size: 10px; }
.recipe-generator { margin: 0 0 16px; padding: 18px; border: 1px solid #dce9df; border-radius: 14px; background: linear-gradient(115deg, #f2f9f3, #fffaf2); }.generator-copy { max-width: 650px; }.generator-copy h3 { color: #174f3a; font-family: "Playfair Display", serif; font-size: 21px; }.generator-copy > p:last-child { max-width: 590px; color: #64766c; font-size: 11px; line-height: 1.5; margin: 7px 0 0; }.generator-controls { display: flex; align-items: end; gap: 10px; margin-top: 14px; }.generator-controls label { display: grid; gap: 5px; color: #557064; font-size: 9px; font-weight: 700; }.generator-controls select { min-width: 205px; padding: 9px 28px 9px 9px; border: 1px solid #d3e2d6; border-radius: 8px; color: #2d5544; background: #fff; font: inherit; font-size: 11px; font-weight: 700; }.generator-button { color: #fff; background: var(--forest); min-height: 35px; }.generated-recipe { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(210px, .85fr); gap: 15px; margin-top: 16px; padding-top: 15px; border-top: 1px solid #dce9df; }.generated-recipe-title { display: flex; gap: 10px; align-items: flex-start; }.generated-recipe-emoji { display: grid; flex: 0 0 39px; place-items: center; width: 39px; height: 39px; border-radius: 11px; background: #e3f2e7; font-size: 22px; }.generated-recipe h4 { color: #274b3c; font-size: 14px; line-height: 1.3; margin: 0; }.generated-recipe-meta { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 6px; }.generated-recipe-meta span { border-radius: 4px; font-size: 8px; font-weight: 700; padding: 3px 5px; color: #4d7560; background: #e4f2e8; }.generated-ingredient-groups { display: grid; gap: 7px; margin-top: 12px; }.generated-ingredient-group { padding: 7px 8px; border: 1px solid #e0e9e1; border-radius: 8px; background: rgba(255,255,255,.58); }.generated-ingredient-group > div { display: flex; align-items: baseline; flex-wrap: wrap; gap: 5px; }.generated-ingredient-group strong { color: #496457; font-size: 9px; }.generated-ingredient-group > div small { color: #7d8982; font-size: 8px; }.generated-ingredient-group.promotion { background: #fff8ee; border-color: #f0deca; }.generated-ingredient-group.promotion strong { color: #a86134; }.generated-ingredient-group.pantry { background: #f0f8f2; border-color: #d7e8db; }.generated-ingredient-group.pantry strong { color: #317158; }.generated-ingredient-group.staple { background: #f7f8f6; border-color: #e5e8e3; }.generated-ingredient-group.regular { background: #fff8f0; border-color: #eee0cf; }.generated-ingredient-group.regular strong { color: #9b663d; }.generated-ingredients { display: flex; flex-wrap: wrap; gap: 6px; padding: 0; margin: 6px 0 0; list-style: none; }.generated-ingredients li { display: inline-flex; align-items: center; gap: 4px; padding: 4px 5px; border: 1px solid #e0e9e1; border-radius: 5px; color: #52645a; background: rgba(255,255,255,.85); font-size: 9px; }.generated-steps { margin: 12px 0 0 17px; padding: 0; color: #5e6d65; font-size: 10px; line-height: 1.45; }.generated-steps li + li { margin-top: 4px; }.culinary-rules { display: grid; align-content: start; gap: 7px; }.culinary-rules > strong { color: #527264; font-size: 10px; }.culinary-rule { padding: 8px; border: 1px solid #d9e8dd; border-radius: 8px; background: rgba(255,255,255,.68); }.culinary-rule strong { display: block; color: #2f664b; font-size: 9px; }.culinary-rule small { display: block; margin-top: 2px; color: #748279; font-size: 8px; line-height: 1.35; }.culinary-rule-neutral { color: #708177; background: rgba(255,255,255,.58); font-size: 9px; line-height: 1.45; padding: 9px; border-radius: 8px; }
.flavour-balance { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 11px; }.flavour-balance > strong { flex-basis: 100%; color: #597064; font-size: 9px; }.flavour-balance span { color: #66756c; background: rgba(255,255,255,.7); border: 1px solid #e3ebe4; border-radius: 5px; padding: 4px 5px; font-size: 8px; }.flavour-balance b { color: #2e694c; }
.pantry-planner { margin: 0 0 16px; padding: 18px; border: 1px solid #dce9df; border-radius: 14px; background: linear-gradient(115deg, #f4f9f2, #fffdf8); }.planner-copy { max-width: 660px; }.planner-copy h3 { color: #174f3a; font-family: "Playfair Display", serif; font-size: 21px; }.planner-copy > p:last-child { margin: 7px 0 0; color: #64766c; font-size: 11px; line-height: 1.5; }.planner-controls { display: flex; align-items: end; flex-wrap: wrap; gap: 9px; margin-top: 14px; }.planner-controls label { display: grid; gap: 5px; color: #557064; font-size: 9px; font-weight: 700; }.planner-controls select { min-width: 220px; padding: 9px 28px 9px 9px; border: 1px solid #d3e2d6; border-radius: 8px; color: #2d5544; background: #fff; font: inherit; font-size: 11px; font-weight: 700; }.clear-use-up { color: #88704d; font-size: 10px; }.planner-generate { min-height: 35px; color: #fff; background: var(--forest); }.three-day-plan { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; margin-top: 15px; }.three-day-card { padding: 11px; border: 1px solid #deebe0; border-radius: 10px; background: rgba(255,255,255,.82); }.three-day-card > small { display: block; color: #789184; font-size: 8px; font-weight: 700; letter-spacing: .7px; }.three-day-card h4 { margin: 5px 0; color: #355c4a; font-size: 12px; line-height: 1.3; }.three-day-meta { display: flex; flex-wrap: wrap; gap: 4px; margin-bottom: 9px; }.three-day-meta span { color: #56806a; background: #e7f3ea; border-radius: 4px; padding: 3px 4px; font-size: 8px; font-weight: 700; }.plan-source-group { display: grid; gap: 3px; padding-top: 8px; margin-top: 8px; border-top: 1px solid #eef2ed; }.plan-source-group strong { color: #66796e; font-size: 8px; }.plan-source-group span { color: #68776f; font-size: 8px; line-height: 1.3; }.plan-source-group .promotion-source { color: #a86134; }.plan-source-group .regular-source { color: #9b663d; }.plan-source-group .pantry-source { color: #317158; }.plan-source-group .staple-source { color: #8b958f; }.plan-delta { grid-column: 1 / -1; padding: 11px; border: 1px dashed #bfdcc8; border-radius: 10px; background: #f4faf4; }.plan-delta-top { display: flex; align-items: center; justify-content: space-between; gap: 8px; }.plan-delta strong { color: #2d694c; font-size: 10px; }.plan-delta p { margin: 4px 0 0; color: #6b7d73; font-size: 9px; line-height: 1.4; }.plan-delta-items { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 8px; }.plan-delta-items span { color: #567366; border-radius: 5px; padding: 4px 5px; background: #fff; border: 1px solid #dbe9de; font-size: 8px; font-weight: 700; }.plan-delta-items .promotion-source { color: #a76134; background: #fff4e8; }.send-plan-delta { color: #fff; background: #2a8a5d; padding: 7px 9px; font-size: 9px; }.shopping-actions { display: flex; align-items: center; gap: 9px; }.purchase-complete { color: #3a7556; font-size: 10px; white-space: nowrap; }.starter-pantry { margin-top: 14px; padding: 11px; background: #f4f8f3; border: 1px solid #e2ece2; border-radius: 10px; }.starter-pantry > strong { color: #405d4e; font-size: 11px; }.starter-pantry p { margin: 3px 0 8px; color: #77847d; font-size: 9px; line-height: 1.4; }.starter-pantry-tags { display: flex; flex-wrap: wrap; gap: 6px; }.starter-pantry-tag { border: 1px solid #dce7de; border-radius: 6px; color: #60756a; background: #fff; padding: 5px 7px; font-size: 9px; font-weight: 700; }.starter-pantry-tag.selected { color: #1e6547; border-color: #add5b9; background: #e5f4e9; }
@media (max-width: 980px) { main { padding: 0 30px 36px; }.app-shell { grid-template-columns: 212px minmax(0, 1fr); }.sidebar { padding-left: 12px; padding-right: 12px; }.recipe-grid { grid-template-columns: repeat(2, 1fr); }.hero-copy { padding-left: 27px; }.hero-food { min-width: 270px; }.orange-disc { left: -25px; }.food-plate { left: -10px; }.stats-grid { gap: 9px; }.stat-card { padding: 12px; }.stat-icon { display: none; }.promotion-board { grid-template-columns: 185px minmax(0, 1fr); }.promotion-summary { padding: 16px; }.promotion-list { grid-template-columns: repeat(2, 1fr); }.promotion-catalogue { padding: 13px; } }
@media (max-width: 720px) { .app-shell { display: block; }.sidebar { z-index: 7; position: fixed; transform: translateX(-100%); transition: .25s; width: 252px; box-shadow: 5px 0 20px rgba(0,0,0,.1); }.sidebar.open { transform: translateX(0); }.mobile-menu { display: inline-grid; place-items: center; width: 35px; height: 35px; background: #fff; border: 1px solid var(--line); border-radius: 9px; color: var(--forest); margin-right: 10px; }.topbar { height: 82px; justify-content: flex-start; }.topbar-actions { margin-left: auto; }.date-button { display: none; } main { padding: 0 16px 30px; }.topbar h1 { font-size: 20px; }.topbar .eyebrow { font-size: 8px; }.hero-grid { grid-template-columns: 1fr; }.hero-food { display: none; }.hero-copy { padding: 28px 24px; }.hero-copy h2 { font-size: 31px; }.stats-grid { grid-template-columns: 1fr; margin-bottom: 30px; }.stat-icon { display: grid; }.section-heading h2 { font-size: 23px; }.day-pager { display: none; }.weekly-heading { align-items: flex-start; gap: 10px; }.weekly-actions { align-items: flex-end; flex-direction: column; }.weekly-match { display: none; }.weekly-generate { padding: 8px 9px; }.weekly-plan .day-pager { display: flex; }.weekly-plan-top { align-items: flex-start; flex-direction: column; }.week-grid { gap: 4px; }.week-day { min-height: 62px; padding: 5px 2px; }.week-day strong { font-size: 15px; }.week-day small { font-size: 8px; letter-spacing: 0; }.promotion-actions { gap: 8px; }.sync-status { display: none; }.promotion-board { grid-template-columns: 1fr; }.promotion-summary { padding: 17px; }.promotion-button { width: auto; padding: 9px 12px; margin-top: 12px; }.promotion-list { grid-template-columns: 1fr 1fr; }.catalogue-header { align-items: flex-start; flex-direction: column; }.catalogue-note { display: none; }.meal-grid { grid-template-columns: 1fr; }.meal-card { display: grid; grid-template-columns: 125px 1fr; gap: 11px; }.meal-image { height: 118px; font-size: 56px; }.meal-meta { padding: 8px 3px; display: block; }.meal-price { display: inline-flex; margin-top: 10px; }.promo-tag { margin-top: 3px; }.recipe-grid { grid-template-columns: 1fr 1fr; }.recipe-image { height: 104px; }.shopping-list { grid-template-columns: 1fr; }.shopping-footer { align-items: flex-start; gap: 11px; flex-direction: column; }.pantry-strip { align-items: flex-start; flex-wrap: wrap; }.pantry-strip .text-button { margin-left: 47px; }.sidebar-promo { margin-top: 28px; }.main-nav { margin-top: 34px; }.human-loop { display: none; }.schedule-card { align-items: flex-start; flex-wrap: wrap; }.vision-run { margin-left: 44px; }.vision-flow { grid-template-columns: 1fr; gap: 8px; }.vision-flow li:not(:last-child)::after { display: none; }.moderation-header { align-items: flex-start; flex-wrap: wrap; gap: 9px; }.moderation-stats { order: 3; flex-basis: 100%; }.moderation-actions { margin-left: auto; }.review-grid { grid-template-columns: 1fr; gap: 0; } }
@media (max-width: 390px) { .hero-buttons { align-items: flex-start; flex-direction: column; }.recipe-grid { grid-template-columns: 1fr; }.recipe-image { height: 120px; } }
@media (max-width: 520px) { .pantry-modal { padding: 22px 17px; }.pantry-list { grid-template-columns: 1fr; }.pantry-form-grid { grid-template-columns: 1fr 86px; }.pantry-form-grid label:first-child { grid-column: 1 / -1; }.pantry-form-footer { align-items: flex-start; flex-direction: column-reverse; }.pantry-form-footer .button { width: 100%; }.shopping-list li { gap: 7px; }.item-amount { margin-left: auto; } }
@media (max-width: 520px) { .receipt-pantry-candidate { grid-template-columns: 20px minmax(0, 1fr) 66px; }.receipt-pantry-candidate label:nth-last-child(1) { grid-column: 2 / 4; }.receipt-pantry-candidate .receipt-include { margin-bottom: 26px; } }
@media (max-width: 720px) { .recipe-generator { padding: 15px; }.generator-controls { align-items: stretch; flex-direction: column; }.generator-controls select, .generator-button { width: 100%; }.generated-recipe { grid-template-columns: 1fr; } }
@media (max-width: 720px) { .pantry-planner { padding: 15px; }.planner-controls { align-items: stretch; flex-direction: column; }.planner-controls select, .planner-generate { width: 100%; }.three-day-plan { grid-template-columns: 1fr; }.shopping-actions { align-items: flex-start; flex-direction: column; } }

.production-moderation-head > p.error { color: #9a5341; }

.pantry-checkin-modal { width: min(560px, calc(100% - 28px)); max-height: min(700px, calc(100vh - 28px)); overflow: auto; position: relative; border: 0; background: #fffdf9; color: var(--ink); padding: 26px; border-radius: 18px; box-shadow: 0 25px 80px rgba(11, 39, 28, .28); }.pantry-checkin-modal::backdrop { background: rgba(12, 36, 28, .56); backdrop-filter: blur(3px); }.close-pantry-checkin { position: absolute; right: 14px; top: 14px; width: 30px; height: 30px; border: 0; border-radius: 50%; background: #f2f4f0; color: var(--forest); font-size: 21px; }.pantry-checkin-head { padding-right: 42px; }.pantry-checkin-head h2 { font-size: 29px; }.pantry-checkin-head > p:last-child { margin: 9px 0 16px; color: #68776f; font-size: 12px; line-height: 1.45; }.pantry-checkin-modal label { display: grid; gap: 6px; color: #41544a; font-size: 11px; font-weight: 700; }.pantry-checkin-modal textarea { width: 100%; min-height: 115px; resize: vertical; color: #31423a; background: #fbfcfa; border: 1px solid #dfe6df; border-radius: 9px; padding: 10px; font: inherit; font-size: 13px; line-height: 1.45; }.pantry-checkin-help { margin: 8px 0 0; color: #7e8983; font-size: 10px; line-height: 1.4; }.pantry-checkin-candidates { display: grid; gap: 7px; margin-top: 15px; padding-top: 15px; border-top: 1px solid #e6ece6; }.pantry-checkin-candidates > strong { font-size: 12px; color: #315e48; }.pantry-checkin-candidate { display: grid; grid-template-columns: 20px minmax(0, 1fr) 74px 75px; align-items: end; gap: 7px; padding: 9px; border: 1px solid #e3ece4; border-radius: 9px; background: #f8fcf8; }.pantry-checkin-candidate > label { font-size: 9px; }.pantry-checkin-candidate > label:first-child { align-self: center; }.pantry-checkin-candidate input, .pantry-checkin-candidate select { width: 100%; min-height: 34px; color: #31423a; background: #fff; border: 1px solid #dce7dd; border-radius: 6px; padding: 6px; font: inherit; font-size: 11px; }.pantry-checkin-actions { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-top: 17px; }.pantry-checkin-submit { color: #fff; background: var(--forest); }

.recipe-servings-note { margin: 9px 0 11px; color: #6e7e75; font-size: 10px; font-weight: 700; }.recipe-ingredient-list { display: grid; gap: 6px; margin: 0; padding: 0; list-style: none; }.recipe-ingredient-list li { display: grid; grid-template-columns: 20px minmax(0, 1fr) auto; align-items: center; gap: 7px; padding: 6px 7px; border: 1px solid #e6ede7; border-radius: 7px; background: rgba(255,255,255,.7); font-size: 10px; }.recipe-ingredient-list li strong { min-width: 0; color: #43534b; font-weight: 600; }.recipe-ingredient-list li b { color: #216347; font-size: 9px; white-space: nowrap; }.recipe-ingredient-empty { color: #8a7560; font-size: 10px; }.modal-body .recipe-ingredient-list { margin-bottom: 3px; }.generated-ingredient-group .recipe-ingredient-list { margin-top: 8px; }

.production-pricing-rule { margin: 13px 0 0; padding: 12px; border: 1px solid #d8e7dc; border-radius: 8px; background: #f8fcf8; }.production-pricing-rule legend { padding: 0 4px; color: #315c48; font-size: 10px; font-weight: 700; }.production-pricing-rule > p { margin: 0 0 9px; color: #718078; font-size: 9px; line-height: 1.4; }.production-pricing-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 10px; }.production-pricing-grid small { color: #87928d; font-weight: 400; }

/* Telefon nie jest pomniejszonym desktopem. Ten wariant zwiększa czytelność,
   pola dotykowe i zmienia gęste zestawienia na jeden czytelny strumień. */
@media (max-width: 720px) {
  html { -webkit-text-size-adjust: 100%; }
  body { overflow-x: hidden; font-size: 16px; }
  main { overflow: visible; padding: 0 14px 34px; }
  .sidebar { width: min(88vw, 320px); padding: 24px 16px 18px; overflow-y: auto; }
  .brand { font-size: 24px; }
  .main-nav { gap: 8px; margin-top: 30px; }
  .nav-link { min-height: 48px; padding: 13px 14px; font-size: 16px; }
  .nav-link > span { font-size: 21px; }
  .sidebar-promo { margin-top: 25px; padding: 17px; }
  .sidebar-promo strong { font-size: 15px; }
  .sidebar-promo p, .profile-button small { font-size: 12px; }
  .profile-button { min-height: 50px; padding: 9px 7px; }
  .profile-button strong { font-size: 14px; }
  .avatar { width: 36px; height: 36px; font-size: 11px; }

  .topbar { height: 76px; }
  .mobile-menu, .icon-button { width: 42px; height: 42px; }
  .topbar h1 { font-size: 22px; }
  .topbar .eyebrow, .eyebrow, .label-with-dot { font-size: 10px; letter-spacing: 1.1px; }
  .pantry-checkin-modal { padding: 22px 18px; }.pantry-checkin-head h2 { font-size: 26px; }.pantry-checkin-head > p:last-child, .pantry-checkin-help { font-size: 12px; }.pantry-checkin-candidate { grid-template-columns: 20px minmax(0, 1fr) 70px; }.pantry-checkin-candidate > label:last-child { grid-column: 2 / 4; }.pantry-checkin-actions { align-items: stretch; flex-direction: column-reverse; }.pantry-checkin-actions .text-button { min-height: 42px; }
  .hero-copy { padding: 28px 22px 25px; }
  .hero-copy h2 { font-size: 34px; line-height: 1.06; }
  .hero-copy > p { font-size: 16px; line-height: 1.5; }
  .hero-buttons { align-items: stretch; flex-direction: column; }
  .button { min-height: 44px; padding: 11px 15px; font-size: 14px; }
  .preference-summary { gap: 7px; }
  .preference-summary span, .store-chips { font-size: 12px; }
  .store-chips b { font-size: 10px; padding: 5px 7px; }

  .stats-grid { gap: 12px; margin: 16px 0 32px; }
  .stat-card { min-height: 96px; padding: 16px; }
  .stat-card p { font-size: 13px; }
  .stat-card strong { font-size: 27px; }
  .stat-card strong small { font-size: 14px; }
  .stat-card span { font-size: 12px; white-space: normal; }
  .section-heading { align-items: flex-start; gap: 12px; margin-bottom: 14px; }
  .section-heading h2 { font-size: 28px; }
  .promotion-actions { margin-left: auto; }
  .text-button { min-height: 40px; font-size: 13px; }

  .promotion-board { border-radius: 14px; }
  .promotion-summary { padding: 20px; }
  .promo-summary-kicker, .promotion-summary small { font-size: 11px; }
  .promotion-summary strong { font-size: 31px; }
  .promotion-summary p { font-size: 14px; }
  .promotion-button { width: 100%; font-size: 14px; }
  .promotion-catalogue { padding: 15px 13px; }
  .store-filters { flex-wrap: wrap; }
  .store-filter { min-height: 38px; padding: 8px 10px; font-size: 12px; }
  .source-status { align-items: flex-start; gap: 7px; padding: 9px; font-size: 11px; line-height: 1.4; }
  .source-info { min-height: 28px; font-size: 11px; }
  .promotion-list { grid-template-columns: 1fr; gap: 9px; }
  .promotion-item { grid-template-columns: 42px minmax(0, 1fr); column-gap: 10px; padding: 11px; }
  .promotion-emoji { width: 42px; height: 42px; font-size: 22px; }
  .promotion-item strong, .promo-price { font-size: 14px; }
  .promotion-item small, .regular-price { font-size: 12px; }
  .promo-savings { display: inline-block; font-size: 10px; padding: 3px 5px; }

  .vision-section { scroll-margin-top: 10px; }
  .schedule-card, .moderation-header { gap: 12px; padding: 15px; }
  .schedule-card strong { font-size: 16px; }
  .schedule-card p, .moderation-notice { font-size: 13px; line-height: 1.5; }
  .schedule-actions { display: grid; grid-template-columns: 1fr; width: 100%; }
  .vision-run { margin-left: 0; }
  .vision-flow li { padding: 12px; }
  .vision-flow li strong { font-size: 14px; }
  .vision-flow li small { font-size: 12px; }
  .moderation-stats { gap: 7px; }
  .moderation-stats span, .moderation-stats strong { font-size: 12px; }
  .moderation-actions { display: grid; grid-template-columns: 1fr 1fr; width: 100%; margin-left: 0; }
  .table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .review-table { min-width: 680px; }
  .review-table th, .review-table td { padding: 12px; font-size: 12px; }
  .review-table td strong { font-size: 13px; }
  .review-table td small, .confidence, .review-status { font-size: 11px; }

  .weekly-heading { flex-direction: column; }
  .weekly-actions { align-items: stretch; width: 100%; }
  .weekly-match { display: block; white-space: normal; text-align: center; font-size: 12px; line-height: 1.35; }
  .weekly-generate { width: 100%; font-size: 14px; }
  .weekly-plan { padding: 15px; }
  .weekly-plan-top > div:first-child strong { font-size: 16px; }
  .weekly-plan-top > div:first-child small { font-size: 12px; line-height: 1.45; }
  .week-grid { display: flex; gap: 8px; overflow-x: auto; padding: 4px 2px 10px; scroll-snap-type: x proximity; }
  .week-day { flex: 0 0 66px; min-height: 72px; padding: 8px 5px; scroll-snap-align: start; }
  .week-day strong { font-size: 19px; }
  .week-day small { font-size: 10px; }
  .meal-grid { gap: 12px; }
  .meal-card { grid-template-columns: 106px minmax(0, 1fr); padding: 10px; }
  .meal-image { height: 126px; font-size: 60px; }
  .meal-meta { padding: 7px 2px; }
  .meal-meta h3 { font-size: 17px; }
  .meal-meta p, .promo-tag { font-size: 12px; line-height: 1.4; }
  .meal-price { font-size: 13px; }

  .pantry-planner, .recipe-generator { padding: 17px; }
  .planner-copy h3, .generator-copy h3 { font-size: 25px; }
  .planner-copy > p:last-child, .generator-copy > p:last-child { font-size: 14px; }
  .planner-controls label, .generator-controls label { font-size: 12px; }
  .planner-controls select, .generator-controls select { min-height: 44px; font-size: 15px; }
  .three-day-card { padding: 13px; }
  .three-day-card > small, .plan-source-group strong, .plan-source-group span { font-size: 12px; }
  .three-day-card h4 { font-size: 16px; }
  .three-day-meta span { font-size: 11px; }
  .generated-recipe h4 { font-size: 18px; }
  .generated-recipe-meta span, .generated-ingredients li, .generated-ingredient-group strong, .generated-ingredient-group > div small { font-size: 11px; }
  .generated-steps, .culinary-rule small, .flavour-balance span { font-size: 12px; line-height: 1.5; }

  .recipe-grid { gap: 12px; }
  .recipe-card h3 { font-size: 16px; }
  .shopping-heading h2 { font-size: 28px; }
  .shopping-list { gap: 10px; }
  .shopping-list li { min-height: 64px; padding: 12px; }
  .shopping-list li label strong { font-size: 15px; }
  .shopping-list li label small, .item-amount, .package-note, .savings-details { font-size: 12px; line-height: 1.4; }
  .shopping-footer { padding-top: 16px; }
  .shopping-footer strong { font-size: 22px; }
  .shopping-footer p { font-size: 13px; }
  .shopping-actions { width: 100%; }
  .shopping-actions .button { width: 100%; }
  .pantry-strip strong { font-size: 17px; }
  .pantry-strip p { font-size: 13px; line-height: 1.45; }

  .modal, .preferences-modal, .account-modal, .notifications-modal, .receipt-modal, .pantry-modal, .review-modal, .production-moderation-modal { width: calc(100% - 20px); max-height: calc(100dvh - 20px); padding: 22px 16px; }
  .preferences-modal { padding: 22px 16px 0; border-radius: 16px; }
  .preferences-head { padding-right: 40px; }
  .preferences-head > p:last-child { margin-bottom: 16px; font-size: 12px; }
  .close-preferences { top: 14px; right: 14px; }
  .preferences-grid, .preference-compact-grid { grid-template-columns: 1fr; }
  .preferences-grid-primary { gap: 8px; }
  .preference-card { padding: 13px; }
  .preference-card h3, .preference-group h3 { font-size: 14px; }
  .preference-hint, .preference-field > span, .preference-details summary small { font-size: 11px; }
  .diet-options span, .taste-group span, .preference-chip { min-height: 38px; padding: 10px 11px; font-size: 12px; }
  .preference-select select { min-height: 44px; font-size: 14px; }
  .preference-details summary { min-height: 58px; padding: 13px; }
  .preference-details summary strong { font-size: 13px; }
  .preferences-grid-secondary { padding: 9px; }
  .preferences-footer { margin: 18px -16px 0; padding: 12px 16px calc(12px + env(safe-area-inset-bottom)); }
  .preferences-footer .text-button { min-height: 44px; }
  .profile-apply { flex: 1; }
  .modal-body { padding: 21px 17px; }
  .modal-body h2, .preferences-modal h2, .account-head h2, .pantry-modal-head h2, .receipt-modal h2 { font-size: 27px; }
  .modal-body > p, .account-head > p:last-child, .account-note { font-size: 14px; line-height: 1.5; }
  .account-status, .account-form label, .account-connected small, .beta-invite-panel > p { font-size: 12px; line-height: 1.45; }
  .account-form input, .beta-invite-link input, .pantry-form input, .pantry-form select, .receipt-form textarea, .review-modal input { min-height: 44px; font-size: 16px; }
  .account-actions { align-items: stretch; flex-direction: column; }
  .account-actions .button, .account-actions .text-button { width: 100%; }
  .beta-invite-panel { padding: 14px; }
}
.recipe-ingredient-list li { grid-template-columns: 30px minmax(0, 1fr) auto; }

@media (max-width: 390px) {
  .hero-copy { padding: 25px 18px; }
  .hero-copy h2 { font-size: 31px; }
  .topbar h1 { font-size: 20px; }
  .meal-card { grid-template-columns: 92px minmax(0, 1fr); }
  .meal-image { height: 118px; font-size: 54px; }
  .promotion-summary, .pantry-planner, .recipe-generator { padding: 15px; }
  .moderation-actions { grid-template-columns: 1fr; }
}

/* Brak opublikowanej oferty nie może wyglądać jak obniżka. */
.regular-price-tag {
  display: inline-flex;
  margin: 7px 2px 0;
  padding: 3px 5px;
  border-radius: 4px;
  color: #687891;
  background: #edf1f7;
  font-size: 9px;
  font-weight: 700;
}

/* Karta startowa ma prowadzić do planu; szczegóły preferencji są w konfiguratorze. */
.hero-copy > p { margin: 10px 0 16px; }
.hero-buttons { gap: 8px; }
.preference-summary { margin-top: 12px; }
.preference-summary span { padding: 5px 8px; font-size: 9px; }
.store-chips { margin-top: 8px; }

@media (max-width: 720px) {
  .hero-copy > p { font-size: 14px; line-height: 1.45; margin: 9px 0 14px; }
  .preference-summary { margin-top: 11px; }
  .preference-summary span { font-size: 10px; }
  .store-chips { margin-top: 7px; }
}

/* Danie dnia: konkret oferty przed pełnym planem. */
.hero-facts { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 16px; }
.hero-facts span { color: #e2f0e8; background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.13); border-radius: 999px; padding: 5px 8px; font-size: 9px; font-weight: 700; }
.hero-secondary { align-self: center; border: 0; padding: 7px 2px; color: #d5eadd; background: transparent; font: inherit; font-size: 11px; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.hero-secondary:hover { color: #fff; }
.hero-trust { color: #b8d4c5 !important; font-size: 9px !important; line-height: 1.35; margin: 13px 0 0 !important; max-width: 460px; }
.meal-promotion-meta, .meal-coverage, .meal-pantry { display: block; margin: 5px 2px 0; color: #667b70; font-size: 8px; font-weight: 700; line-height: 1.35; }
.meal-promotion-meta { color: #4b7961; }
.meal-coverage { color: #a76134; }
.meal-pantry { color: #317158; }
.meal-price { display: grid; gap: 2px; }
.meal-price small { color: #718078; font-size: 8px; font-weight: 600; }
.shopping-aisle-heading { grid-column: 1 / -1; min-height: auto !important; margin-top: 5px; padding: 11px 0 5px !important; border: 0 !important; color: #406a56; font-size: 10px !important; font-weight: 800; letter-spacing: .55px; text-transform: uppercase; }
.shopping-aisle-heading span { font-size: 13px; }
.expiring-section { margin: -8px 0 39px; scroll-margin-top: 18px; }
.expiring-section[hidden] { display: none; }
.expiring-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.expiring-card { display: grid; grid-template-columns: 43px minmax(0, 1fr); gap: 10px; padding: 12px; background: #fff; border: 1px solid #eee7db; border-radius: 12px; }
.expiring-emoji { display: grid; place-items: center; width: 43px; height: 43px; border-radius: 10px; background: var(--promo-bg, #f8f0e3); font-size: 22px; }
.expiring-card p { margin: 0; color: #8a7560; font-size: 8px; font-weight: 700; }
.expiring-card h3 { margin: 3px 0; color: #405248; font-size: 12px; line-height: 1.25; }
.expiring-card strong { display: block; color: #be6637; font-size: 9px; }
.expiring-card small { display: block; margin-top: 5px; color: #6d7b73; font-size: 8px; line-height: 1.35; }
.bottom-nav { display: none; }
.vision-heading-actions { display: flex; align-items: center; gap: 10px; }
.vision-heading-actions .production-moderation-open { color: #fff; background: var(--forest); }
.vision-heading-actions .vision-run { color: var(--forest); background: transparent; }
.nutrition-estimate { margin: 8px 0 0; color: #6a796f; font-size: 11px; line-height: 1.45; }

.shared-shopping-modal { position: relative; width: min(520px, calc(100% - 28px)); max-height: min(720px, calc(100vh - 28px)); overflow: auto; border: 0; padding: 26px; color: var(--ink); background: #fffdf9; border-radius: 18px; box-shadow: 0 25px 80px rgba(11, 39, 28, .28); }
.shared-shopping-modal::backdrop { background: rgba(12, 36, 28, .56); backdrop-filter: blur(3px); }
.close-shared-shopping { position: absolute; right: 14px; top: 14px; width: 30px; height: 30px; border: 0; border-radius: 50%; background: #f2f4f0; color: var(--forest); font-size: 21px; }
.shared-shopping-head { padding-right: 35px; }
.shared-shopping-head h2 { margin: 2px 0 7px; font-size: 27px; }
.shared-shopping-head p { margin: 0; color: #68776f; font-size: 11px; line-height: 1.45; }
.shared-shopping-summary { display: flex; gap: 8px; flex-wrap: wrap; margin: 15px 0 12px; }
.shared-shopping-summary span { color: #2e684d; background: #edf7ef; border-radius: 6px; padding: 5px 7px; font-size: 10px; font-weight: 700; }
.shared-shopping-items { display: grid; gap: 7px; padding: 0; margin: 0; list-style: none; }
.shared-shopping-items li { display: grid; grid-template-columns: 20px minmax(0, 1fr) auto; gap: 8px; align-items: center; padding: 9px; border: 1px solid #e2ebe3; border-radius: 9px; background: #fbfdfb; }
.shared-shopping-items li.done { opacity: .58; }
.shared-shopping-items strong { display: block; color: #3b5146; font-size: 11px; }
.shared-shopping-items small { display: block; color: #7c8982; font-size: 9px; margin-top: 2px; }
.shared-shopping-items b { color: #236446; font-size: 10px; white-space: nowrap; }
.shared-shopping-empty { margin: 18px 0 0; padding: 13px; color: #5b7868; background: #f1f8f2; border-radius: 9px; font-size: 11px; }
.shared-shopping-error { color: #965440; }
.notification-device { margin: 13px 0; padding: 11px; border: 1px solid #dce9df; border-radius: 9px; background: #f4f9f4; }.notification-device strong { display: block; color: #315d48; font-size: 10px; }.notification-device p { margin: 4px 0 7px; color: #6a7d73; font-size: 9px; line-height: 1.4; }.notification-device .text-button { color: #236c4d; font-size: 10px; }
.production-source-registry { padding: 12px 18px; border-bottom: 1px solid #edf0eb; background: #fbfdfb; }.production-source-registry > strong { display: block; color: #3e6652; font-size: 10px; }.production-source-registry ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px 14px; padding: 0; margin: 8px 0 0; list-style: none; }.production-source-registry li { display: grid; grid-template-columns: 8px minmax(0, 1fr); gap: 7px; align-items: start; }.source-registry-status { width: 7px; height: 7px; margin-top: 4px; border-radius: 50%; background: #d18a45; }.source-registry-status.gotowe { background: #4aa26f; }.production-source-registry b { display: block; color: #405248; font-size: 10px; }.production-source-registry small, .production-source-registry p { display: block; margin: 2px 0 0; color: #78857e; font-size: 8px; line-height: 1.35; }.production-source-registry .source-registry-note { margin-top: 8px; }
.production-import-controls { margin-top: 14px; padding: 16px; border: 1px solid #dbe9df; border-radius: 12px; background: #f7fbf7; }.production-import-controls > div strong { display: block; color: #315c48; font-size: 14px; }.production-import-controls > div p { margin: 4px 0 12px; color: #697b70; font-size: 11px; }.production-import-controls > .button { color: #fff; background: var(--forest); }.production-add-import-form { display: grid; grid-template-columns: 1fr 2fr 1fr 1fr auto; gap: 9px; align-items: end; margin-top: 15px; }.production-add-import-form label { display: grid; gap: 5px; min-width: 0; color: #4b5b54; font-size: 10px; font-weight: 700; }.production-add-import-form input, .production-add-import-form select { width: 100%; min-height: 38px; padding: 7px; border: 1px solid #d5e2d8; border-radius: 7px; color: #31423a; background: #fff; font: inherit; font-size: 11px; }.production-add-import-form button { min-height: 38px; }.production-import-controls button:disabled { opacity: .45; cursor: not-allowed; }
@media (max-width: 720px) { .production-add-import-form { grid-template-columns: 1fr 1fr; }.production-add-import-form label:nth-child(2) { grid-column: 1 / -1; }.production-add-import-form button { grid-column: 1 / -1; }.production-import-controls > .button { width: 100%; min-height: 42px; } }
.pantry-product-search { margin: 0 0 14px; padding: 12px; border: 1px solid #dfe9e0; border-radius: 10px; background: #f6faf6; }.pantry-product-search > strong { display: block; color: #315e48; font-size: 11px; }.pantry-product-search > p { margin: 3px 0 10px; color: #738078; font-size: 9px; line-height: 1.4; }.pantry-product-search-grid { display: grid; grid-template-columns: minmax(0, 1fr) 68px 70px auto; gap: 7px; align-items: end; }.pantry-product-search label { font-size: 9px; }.pantry-product-search input, .pantry-product-search select { width: 100%; min-height: 34px; color: #31423a; background: #fff; border: 1px solid #d6e3d8; border-radius: 6px; padding: 6px; font: inherit; font-size: 11px; }.pantry-product-add { min-height: 34px; color: #216246; font-size: 10px; white-space: nowrap; }.pantry-product-add:disabled { opacity: .45; cursor: not-allowed; }.pantry-product-suggestions { display: grid; gap: 4px; margin-top: 7px; }.pantry-product-suggestions button { display: grid; grid-template-columns: 20px minmax(0, 1fr); align-items: center; gap: 7px; width: 100%; border: 0; border-radius: 6px; padding: 7px; color: #365547; background: #fff; text-align: left; font: inherit; }.pantry-product-suggestions button:hover, .pantry-product-suggestions button:focus-visible { outline: 2px solid #a8cfb5; background: #edf8ef; }.pantry-product-suggestions span { font-size: 15px; }.pantry-product-suggestions strong { font-size: 10px; }

@media (max-width: 720px) {
  main { padding-bottom: 91px; }
  .toast { bottom: calc(88px + env(safe-area-inset-bottom)); }
  .vision-heading { align-items: flex-start; gap: 10px; }
  .vision-heading-actions { align-items: flex-end; flex-direction: column; }
  .hero-facts { gap: 5px; margin-bottom: 15px; }
  .hero-facts span { padding: 5px 7px; font-size: 10px; }
  .hero-secondary { width: fit-content; min-height: 38px; font-size: 13px; }
  .hero-trust { font-size: 11px !important; }
  .meal-promotion-meta, .meal-coverage, .meal-pantry, .meal-price small { font-size: 10px; }
  .shopping-aisle-heading { padding: 14px 0 6px !important; font-size: 11px !important; }
  .expiring-list { grid-template-columns: 1fr; }
  .expiring-card { padding: 14px; }
  .expiring-card p, .expiring-card strong, .expiring-card small { font-size: 11px; }
  .expiring-card h3 { font-size: 15px; }
  .bottom-nav { position: fixed; z-index: 12; right: 0; bottom: 0; left: 0; display: grid; grid-template-columns: repeat(5, 1fr); min-height: 68px; padding: 6px max(8px, env(safe-area-inset-right)) calc(6px + env(safe-area-inset-bottom)) max(8px, env(safe-area-inset-left)); background: rgba(255,254,249,.96); border-top: 1px solid #dde7df; box-shadow: 0 -5px 22px rgba(27,57,42,.09); backdrop-filter: blur(12px); }
  .bottom-nav-link { display: grid; place-items: center; align-content: center; gap: 2px; min-width: 0; border: 0; border-radius: 9px; padding: 4px 2px; color: #66736c; background: transparent; font: inherit; font-size: 10px; font-weight: 700; line-height: 1.1; text-decoration: none; }
  .bottom-nav-link span { font-size: 19px; line-height: 1; }
  .bottom-nav-link.active { color: var(--forest); background: #e9f5ed; }
}

@media (max-width: 720px) {
  .production-source-registry { padding: 13px 15px; }
  .production-source-registry ul { grid-template-columns: 1fr; gap: 9px; }
  .production-source-registry b { font-size: 12px; }
  .production-source-registry small, .production-source-registry p { font-size: 10px; }
  .pantry-product-search { padding: 13px; }
  .pantry-product-search > strong { font-size: 13px; }
  .pantry-product-search > p { font-size: 11px; }
  .pantry-product-search-grid { grid-template-columns: minmax(0, 1fr) 72px 76px; }
  .pantry-product-add { grid-column: 1 / -1; min-height: 40px; }
  .pantry-product-search input, .pantry-product-search select { min-height: 39px; font-size: 13px; }
  .pantry-product-suggestions strong { font-size: 12px; }
}

/* Receptury: czytelna karta, wyraźna akcja i ten sam układ na telefonie. */
.recipe-heading { align-items: end; margin-top: 44px; }
.recipe-heading .text-button { min-height: 40px; font-size: 13px; text-align: right; }
.recipe-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin-bottom: 30px; }
.recipe-card { position:relative; display:block; width: 100%; min-height: 220px; padding: 10px; border: 1px solid #e0e9e1; border-radius: 20px; color: var(--ink); background: #fff; text-align: left; box-shadow: 0 8px 28px rgba(34, 59, 49, .045); }
.recipe-card-main { display:grid; grid-template-columns:132px minmax(0,1fr); width:100%; min-height:198px; padding:0; border:0; color:inherit; background:transparent; text-align:left; cursor:pointer; font:inherit; }
.recipe-card:hover { border-color: #b8d6c2; box-shadow: 0 16px 35px rgba(34, 59, 49, .1); }
.recipe-card-main:focus-visible, .save-button:focus-visible, .favorite-filter:focus-visible { outline: 3px solid #80b996; outline-offset: 3px; }
.recipe-save-button { z-index:2; top:19px; right:19px; width:36px; height:36px; border:1px solid #dce9de; font-size:19px; cursor:pointer; }
.modal-title-row { display:flex; align-items:start; justify-content:space-between; gap:12px; }
.modal-title-row .modal-save-button { position:static; flex:0 0 40px; width:40px; height:40px; border:1px solid #dce9de; font-size:22px; cursor:pointer; }
.recipe-image { height: 100%; min-height: 198px; border-radius: 13px; font-size: 67px; }
.recipe-image small { top: 10px; bottom: auto; left: 10px; padding: 5px 8px; border-radius: 99px; font-size: 10px; background: rgba(255,255,255,.92); }
.recipe-info { display: flex; flex-direction: column; gap: 8px; min-width: 0; padding: 9px 11px; }
.recipe-type { color: #44805b; font-size: 10px; font-weight: 800; letter-spacing: 1px; }
.recipe-title { display: block; color: #183c2d; font-family: "Playfair Display", serif; font-size: 21px; line-height: 1.12; letter-spacing: -.5px; }
.recipe-description { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2; color: #66746b; font-size: 12px; line-height: 1.45; }
.recipe-stats { display: flex; flex-wrap: wrap; gap: 5px; }
.recipe-stats span { padding: 5px 7px; border-radius: 7px; color: #35654d; background: #eef6ef; font-size: 10px; font-weight: 700; }
.recipe-availability { color: #697b6d; font-size: 10px; line-height: 1.4; }
.recipe-link { display: flex; justify-content: space-between; align-items: center; gap: 8px; margin-top: auto; padding-top: 9px; border-top: 1px solid #e9efe9; color: #18583e; font-size: 12px; font-weight: 800; }
.recipe-link span { font-size: 18px; }
.modal { max-width: 570px; max-height: calc(100dvh - 32px); overflow-y: auto; border-radius: 22px; }
.modal-hero { height: 150px; font-size: 86px; }
.modal-body { padding: 27px 30px 30px; }
.modal-body h2 { font-size: clamp(27px, 4vw, 34px); line-height: 1.13; }
.modal-body > p { font-size: 14px; }
.modal-facts span { font-size: 11px; border-radius: 8px; }
.modal-body .recipe-ingredient-list li { min-height: 40px; padding: 8px 10px; font-size: 12px; }
.modal-body .recipe-ingredient-list li b { font-size: 12px; }
.modal-body ol { font-size: 14px; line-height: 1.6; }
.modal-cta { gap: 16px; padding-top: 17px; border-top: 1px solid #e5ece5; }
.modal-cta strong small { display: block; margin-top: 3px; color: #78877c; font: 500 10px/1.4 "DM Sans", sans-serif; }
@media (max-width: 720px) {
  .recipe-heading { align-items: start; gap: 12px; }
  .recipe-heading h2 { font-size: 25px; }
  .recipe-heading .text-button { max-width: 132px; min-width: 105px; line-height: 1.25; }
  .recipe-grid { grid-template-columns: 1fr; gap: 12px; }
  .recipe-card { min-height: 183px; }
  .recipe-card-main { grid-template-columns: 110px minmax(0, 1fr); min-height: 161px; }
  .recipe-image { min-height: 160px; font-size: 54px; }
  .recipe-info { gap: 6px; padding: 5px 7px; }
  .recipe-title { font-size: 19px; }
  .recipe-description { font-size: 11px; }
  .modal { width: calc(100% - 20px); max-height: calc(100dvh - 20px); }
  .modal-body { padding: 22px 18px; }
  .modal-cta { align-items: stretch; flex-direction: column; }
  .modal-cta .button { min-height: 46px; }
}

/* Krótkie widoki aplikacji: każda pozycja nawigacji jest osobnym ekranem. */
.app-views-enabled [data-app-view]:not(.is-active) { display: none !important; }
.app-views-enabled [data-app-view].is-active { animation: app-view-in .52s cubic-bezier(.2,.78,.28,1) both; }
.app-views-enabled [data-app-view].is-active + [data-app-view].is-active { animation-delay: .06s; }
.app-views-enabled main { min-height: 100dvh; view-transition-name: active-panel; }
.app-views-enabled .topbar { position: sticky; z-index: 5; top: 0; margin: 0 -6px 18px; padding: 0 6px; background: rgba(255,254,249,.88); backdrop-filter: blur(16px) saturate(1.2); }
::view-transition-old(active-panel) { animation: app-view-out .24s ease both; }
::view-transition-new(active-panel) { animation: app-view-in .46s cubic-bezier(.2,.78,.28,1) both; }
@keyframes app-view-in { from { opacity: 0; transform: translateY(18px) scale(.988); filter: blur(5px); } to { opacity: 1; transform: none; filter: none; } }
@keyframes app-view-out { to { opacity: 0; transform: translateY(-8px) scale(.992); filter: blur(3px); } }

/* Warstwowa animacja hero i kart — atrakcyjna, lecz bez ciężkich bibliotek. */
.hero-grid { isolation: isolate; box-shadow: 0 24px 70px rgba(18,67,49,.16); }
.hero-grid::after { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; background: linear-gradient(110deg, transparent 20%, rgba(255,255,255,.12) 44%, transparent 68%); transform: translateX(-120%); animation: hero-shimmer 8s 1.2s ease-in-out infinite; }
.orange-disc { animation: hero-orbit 8s ease-in-out infinite; }
.floating-price { animation: price-float 4.8s .35s ease-in-out infinite; }
.ingredient.basil { animation: garnish-one 5.5s ease-in-out infinite; }
.ingredient.tomato { animation: garnish-two 4.6s ease-in-out infinite; }
.ingredient.leaf { animation: garnish-one 6.2s .6s ease-in-out infinite reverse; }
@keyframes hero-shimmer { 0%,68%,100% { transform: translateX(-120%); } 82% { transform: translateX(120%); } }
@keyframes hero-orbit { 0%,100% { transform: scale(1) rotate(0); } 50% { transform: scale(1.035) rotate(3deg); } }
@keyframes meal-float { 0%,100% { transform: translateY(0) rotate(-9deg); } 50% { transform: translateY(-9px) rotate(-6deg); } }
@keyframes hero-meal-float { 0%,100% { transform: translateY(0) rotate(-3deg); } 50% { transform: translateY(-9px) rotate(2deg); } }
@keyframes price-float { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-6px); } }
@keyframes garnish-one { 0%,100% { transform: translate3d(0,0,0) rotate(0); } 50% { transform: translate3d(5px,-8px,0) rotate(8deg); } }
@keyframes garnish-two { 0%,100% { transform: translate3d(0,0,0) rotate(0); } 50% { transform: translate3d(-5px,6px,0) rotate(-10deg); } }
.meal-card, .recipe-card, .shopping-aisle-group, .pantry-page-preview button { transition: transform .28s cubic-bezier(.2,.78,.28,1), box-shadow .28s ease, border-color .28s ease, background .28s ease; }
.meal-card:hover, .recipe-card:hover, .pantry-page-preview button:hover { transform: translateY(-5px) scale(1.008); box-shadow: 0 20px 45px rgba(31,72,54,.12); }
.button, .text-button, .bottom-nav-link { transition: transform .18s ease, background .22s ease, color .22s ease, box-shadow .22s ease; }
.button:active, .text-button:active, .bottom-nav-link:active { transform: scale(.97); }
.button:focus-visible, .text-button:focus-visible, .bottom-nav-link:focus-visible, summary:focus-visible { outline: 3px solid #8fc6a3; outline-offset: 3px; }

/* Lista zakupów: zwijane alejki i zawsze widoczny postęp. */
.shopping-progress { height: 7px; overflow: hidden; background: #e4eee6; }
.shopping-progress span { display: block; width: 0; height: 100%; border-radius: 0 99px 99px 0; background: linear-gradient(90deg,#25815b,#74b982); transition: width .45s cubic-bezier(.2,.78,.28,1); }
.shopping-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; padding: 16px 18px; }
.shopping-aisle-group { display: block !important; padding: 0 !important; border: 1px solid #e4ebe4 !important; border-radius: 13px; background: #fff; overflow: hidden; }
.shopping-aisle-group details { width: 100%; }
.shopping-aisle-group summary { display: grid; grid-template-columns: 28px minmax(0,1fr) auto 18px; gap: 8px; align-items: center; min-height: 52px; padding: 10px 12px; color: #315e48; background: #f6faf6; cursor: pointer; list-style: none; }
.shopping-aisle-group summary::-webkit-details-marker { display: none; }
.shopping-aisle-group summary > span { font-size: 19px; }
.shopping-aisle-group summary strong { font-size: 12px; }
.shopping-aisle-group summary small { color: #708078; font-size: 9px; }
.shopping-aisle-group summary i { font-style: normal; transition: transform .22s ease; }
.shopping-aisle-group details:not([open]) summary i { transform: rotate(-90deg); }
.shopping-aisle-group ul { display: grid; padding: 4px 12px 10px; margin: 0; list-style: none; }
.shopping-aisle-group ul li { animation: shopping-item-in .32s ease both; }
.shopping-aisle-group ul li:nth-child(2) { animation-delay: .035s; }.shopping-aisle-group ul li:nth-child(3) { animation-delay: .07s; }.shopping-aisle-group ul li:nth-child(4) { animation-delay: .105s; }
@keyframes shopping-item-in { from { opacity: 0; transform: translateX(-8px); } to { opacity: 1; transform: none; } }
.shopping-list input:checked + .shopping-product-art { transform: scale(.82); opacity: .5; }
.shopping-product-art { transition: transform .22s ease, opacity .22s ease; }

/* Pełny, ale krótki ekran spiżarni. */
.pantry-page { position: relative; display: grid; grid-template-columns: minmax(0,1fr) 190px; gap: 20px; align-items: center; min-height: 330px; margin-top: 0; padding: clamp(24px,4vw,44px); overflow: hidden; background: linear-gradient(135deg,#f7f0e2,#eef6e9); border: 1px solid #ebe3d5; border-radius: 24px; box-shadow: 0 20px 55px rgba(78,72,43,.08); }
.pantry-page-copy h2 { margin: 3px 0 8px; font-size: clamp(32px,5vw,52px); }
.pantry-page-copy p { max-width: 560px; color: #6e756b; font-size: 14px; line-height: 1.55; }
.pantry-page-art { position: relative; display: grid; place-items: center; width: 168px; height: 168px; border-radius: 50%; color: #6d8255; background: rgba(255,255,255,.65); box-shadow: inset 0 0 0 1px rgba(77,110,74,.1), 0 20px 40px rgba(85,105,67,.12); }
.pantry-page-art span { z-index: 2; font-size: 70px; animation: pantry-breathe 4s ease-in-out infinite; }
.pantry-page-art i { position: absolute; width: 28px; height: 28px; border-radius: 50%; background: #edb364; animation: pantry-dot 5s ease-in-out infinite; }
.pantry-page-art i:nth-child(2) { top: 14px; right: 10px; }.pantry-page-art i:nth-child(3) { right: 4px; bottom: 25px; width: 18px; height: 18px; background: #7dab75; animation-delay: .8s; }.pantry-page-art i:nth-child(4) { bottom: 5px; left: 21px; width: 22px; height: 22px; background: #d77e62; animation-delay: 1.4s; }
@keyframes pantry-breathe { 0%,100% { transform: translateY(0) scale(1); } 50% { transform: translateY(-6px) scale(1.04); } }
@keyframes pantry-dot { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }
.pantry-primary { justify-self: start; min-height: 48px; color: #fff; background: var(--forest); box-shadow: 0 10px 24px rgba(28,91,65,.2); }
.pantry-quick-form { position: relative; grid-column: 1 / -1; display: grid; grid-template-columns: minmax(240px,1fr) 100px 110px auto; gap: 9px; align-items: end; padding: 14px; border: 1px solid rgba(65,103,79,.15); border-radius: 16px; background: rgba(255,255,255,.78); box-shadow: 0 12px 30px rgba(51,84,62,.06); }
.pantry-quick-form label { position: relative; display: grid; gap: 6px; color: #587064; font-size: 10px; font-weight: 800; }
.pantry-quick-form input,.pantry-quick-form select { width: 100%; min-height: 48px; border: 1px solid #d7e2d8; border-radius: 11px; padding: 10px 12px; color: #31453a; background: #fff; font: inherit; font-size: 13px; }
.pantry-quick-search input { padding-left: 15px; font-size: 15px; }
.pantry-quick-form .pantry-primary { min-width: 110px; justify-content: center; }
.pantry-quick-suggestions { position: absolute; z-index: 8; top: calc(100% + 5px); right: 0; left: 0; display: grid; max-height: 270px; overflow: auto; padding: 6px; border: 1px solid #d9e4db; border-radius: 12px; background: #fff; box-shadow: 0 18px 45px rgba(26,64,44,.18); }
.pantry-quick-suggestions button { display: grid; grid-template-columns: 38px minmax(0,1fr); gap: 10px; align-items: center; min-height: 50px; padding: 7px 9px; border: 0; border-radius: 9px; color: #345443; background: transparent; text-align: left; font: inherit; }
.pantry-quick-suggestions button:hover,.pantry-quick-suggestions button:focus-visible { background: #edf7ef; }
.pantry-quick-suggestions svg { width: 36px; height: 36px; }
.pantry-quick-suggestions strong { font-size: 12px; }
.pantry-quick-products { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 7px; align-items: center; margin-top: -8px; }
.pantry-quick-products > span { margin-right: 3px; color: #718078; font-size: 10px; font-weight: 700; }
.pantry-quick-products button { min-height: 40px; padding: 8px 12px; border: 1px solid #dce7dd; border-radius: 999px; color: #41624f; background: rgba(255,255,255,.76); font: inherit; font-size: 10px; font-weight: 800; }
.pantry-edit-all { grid-column: 1 / -1; justify-self: start; min-height: 44px; margin: -5px 0 -8px; color: #416b54; }
.pantry-page-actions { display: flex; flex-wrap: wrap; gap: 16px; }
.pantry-page-actions .text-button { min-height: 44px; margin-left: 0; color: #416b54; }
.pantry-page-preview { grid-column: 1 / -1; padding-top: 18px; border-top: 1px solid rgba(73,98,75,.12); }
.pantry-page-preview > strong { display: block; margin-bottom: 10px; color: #496251; font-size: 11px; letter-spacing: .5px; text-transform: uppercase; }
.pantry-page-preview > div { display: grid; grid-template-columns: repeat(6,minmax(0,1fr)); gap: 9px; }
.pantry-page-preview button { min-width: 0; min-height: 92px; padding: 10px; border: 1px solid #e2e9df; border-radius: 13px; color: #3c5346; background: rgba(255,255,255,.82); text-align: left; }
.pantry-page-preview button span { display: block; width: 32px; height: 32px; margin-bottom: 7px; }.pantry-page-preview button b,.pantry-page-preview button small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.pantry-page-preview button b { font-size: 10px; }.pantry-page-preview button small { margin-top: 3px; color: #7b887f; font-size: 9px; }
.pantry-page-empty { grid-column: 1 / -1; display: grid !important; place-items: center; min-height: 130px; text-align: center; }.pantry-page-empty span { font-size: 34px; }.pantry-page-empty p { margin: 4px 0 0; color: #768178; font-size: 11px; }

/* Konfigurator, tryby planu i przewodnik kontekstowy. */
.onboarding-modal, .plan-modes-modal { width: min(620px,calc(100% - 28px)); max-height: min(760px,calc(100dvh - 28px)); overflow: auto; border: 0; border-radius: 26px; padding: 30px; color: var(--ink); background: #fffdf9; box-shadow: 0 30px 100px rgba(12,43,32,.32); }
.onboarding-modal::backdrop, .plan-modes-modal::backdrop { background: rgba(10,39,29,.65); backdrop-filter: blur(9px); }
.onboarding-modal[open], .plan-modes-modal[open] { animation: dialog-pop .42s cubic-bezier(.16,.82,.32,1.08) both; }
@keyframes dialog-pop { from { opacity: 0; transform: translateY(24px) scale(.95); } to { opacity: 1; transform: none; } }
.onboarding-close, .plan-modes-close { position: absolute; top: 16px; right: 16px; z-index: 2; width: 38px; height: 38px; border: 0; border-radius: 50%; color: #345c48; background: #f0f4ef; font-size: 22px; }
.onboarding-progress { display: grid; grid-template-columns: repeat(3,1fr); gap: 6px; margin: 0 50px 25px 0; }.onboarding-progress span { height: 5px; border-radius: 99px; background: #e2e9e2; transition: background .25s, transform .25s; }.onboarding-progress span.active { background: #398663; transform: scaleY(1.25); }
.onboarding-step { animation: onboarding-step-in .36s ease both; }.onboarding-step h2,.plan-modes-modal h2 { margin: 4px 0 9px; font-size: clamp(29px,5vw,42px); line-height: 1.08; }.onboarding-step > p:not(.eyebrow),.plan-modes-modal > p { color: #69776f; font-size: 13px; line-height: 1.55; }
@keyframes onboarding-step-in { from { opacity:0; transform:translateX(18px); } to { opacity:1; transform:none; } }
.onboarding-visual { position: relative; display: grid; place-items: center; width: 150px; height: 150px; margin: 4px auto 25px; border-radius: 50%; background: radial-gradient(circle,#f7bd65,#ef9147); box-shadow: 0 22px 50px rgba(218,133,61,.25); }.onboarding-visual img { width: 86px; filter: drop-shadow(0 12px 10px rgba(76,47,25,.18)); animation: meal-float 4s ease-in-out infinite; }.onboarding-visual span { position: absolute; padding: 6px 9px; border-radius: 999px; color: #236044; background: #fff; font-size: 11px; font-weight: 800; box-shadow: 0 8px 20px rgba(37,72,55,.14); }.onboarding-visual span:nth-of-type(1) { top: 9px; right: -10px; }.onboarding-visual span:nth-of-type(2) { bottom: 15px; left: -13px; }
.onboarding-actions { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-top: 26px; }.onboarding-actions .button { min-width: 150px; min-height: 48px; color: #fff; background: var(--forest); }.onboarding-actions .text-button { min-height: 44px; }
.onboarding-choice-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 10px; margin: 20px 0; }.onboarding-choice-grid input,.onboarding-chip-grid input { position: absolute; opacity: 0; pointer-events: none; }.onboarding-choice-grid label > span { display: grid; gap: 3px; min-height: 82px; padding: 16px; border: 1px solid #dfe8df; border-radius: 14px; background: #fff; cursor: pointer; }.onboarding-choice-grid input:checked + span,.onboarding-chip-grid input:checked + span { border-color: #75ae89; color: #225e42; background: #eaf6ed; box-shadow: inset 0 0 0 1px #75ae89; }.onboarding-choice-grid b { font-size: 15px; }.onboarding-choice-grid small { color: #748078; font-size: 10px; }
.onboarding-select,.onboarding-inline-fields label,.onboarding-pantry-input { display: grid; gap: 6px; color: #4f6257; font-size: 11px; font-weight: 700; }.onboarding-select select,.onboarding-inline-fields select,.onboarding-pantry-input textarea { width: 100%; min-height: 46px; border: 1px solid #d8e3da; border-radius: 10px; padding: 10px 12px; color: #31443a; background: #fbfdfb; font: inherit; }.onboarding-pantry-input textarea { min-height: 150px; resize: vertical; font-size: 14px; line-height: 1.5; }
.onboarding-section { margin-top: 18px; }.onboarding-section > strong { display: block; margin-bottom: 8px; color: #465c50; font-size: 11px; }.onboarding-chip-grid { display: flex; flex-wrap: wrap; gap: 7px; }.onboarding-chip-grid span { display: block; min-height: 42px; padding: 10px 12px; border: 1px solid #dfe7df; border-radius: 10px; background: #fff; cursor: pointer; font-size: 11px; font-weight: 700; }.onboarding-inline-fields { display: grid; grid-template-columns: repeat(2,1fr); gap: 10px; margin-top: 18px; }.onboarding-advanced { width: 100%; min-height: 42px; margin-top: 12px; border: 0; color: #577063; background: transparent; font: inherit; font-size: 10px; text-decoration: underline; }
.onboarding-quick-products { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 10px; }.onboarding-quick-products button { min-height: 38px; padding: 8px 11px; border: 1px solid #dce7dd; border-radius: 999px; color: #41624f; background: #f5f9f4; font: inherit; font-size: 10px; font-weight: 700; }.onboarding-quick-products button.selected { color: #fff; background: #397a59; }.onboarding-finish { text-align: center; }.onboarding-success { display: grid; place-items: center; width: 96px; height: 96px; margin: 15px auto 22px; border-radius: 50%; color: #fff; background: linear-gradient(135deg,#2e8a61,#74ba80); font-size: 44px; box-shadow: 0 18px 40px rgba(47,139,98,.25); animation: success-pop .65s cubic-bezier(.16,.82,.32,1.18) both; }@keyframes success-pop{from{transform:scale(.4) rotate(-18deg);opacity:0}to{transform:none;opacity:1}}.onboarding-finish .button { min-height: 49px; margin-top: 20px; color:#fff;background:var(--forest); }
.plan-mode-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; margin-top: 22px; }.plan-mode-grid button { display: grid; grid-template-columns: 43px minmax(0,1fr); grid-template-rows: auto auto; column-gap: 11px; padding: 14px; border: 1px solid #dfe7df; border-radius: 15px; color: #354f42; background: #fff; text-align: left; }.plan-mode-grid button:hover { transform: translateY(-3px); border-color:#83b293;background:#f1f8f2;box-shadow:0 15px 30px rgba(39,83,60,.1); }.plan-mode-grid button > span { grid-row:1/3; display:grid;place-items:center;width:43px;height:43px;border-radius:12px;color:#226244;background:#e5f4e9;font-size:18px;font-weight:800; }.plan-mode-grid b{font-size:12px}.plan-mode-grid small{margin-top:3px;color:#78847d;font-size:9px;line-height:1.35}
.plan-mode-settings { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:18px; }.plan-mode-settings label { display:grid;gap:6px;color:#405849;font-size:11px;font-weight:800; }.plan-mode-settings select { width:100%;min-height:44px;padding:9px 12px;border:1px solid #d7e4d9;border-radius:11px;color:#315543;background:#f9fcf9;font:inherit;font-size:12px; }.plan-mode-access { margin:9px 0 0;color:#68796d;font-size:10px;line-height:1.4; }
.plan-mode-calorie-note { display:block;margin-top:8px;color:#68796d;font-size:10px;line-height:1.45; }
.feature-guide { position: fixed; z-index: 40; right: 24px; bottom: 24px; width: min(370px,calc(100vw - 32px)); padding: 18px; border: 1px solid rgba(255,255,255,.28); border-radius: 18px; color: #fff; background: rgba(20,66,49,.96); box-shadow: 0 22px 65px rgba(10,39,28,.32); backdrop-filter: blur(16px); animation: guide-in .4s cubic-bezier(.2,.78,.28,1) both; }.feature-guide-progress{color:#a9d4b8;font-size:9px;font-weight:800;letter-spacing:.7px}.feature-guide strong{display:block;margin-top:5px;font-family:"Playfair Display",serif;font-size:21px}.feature-guide p{margin:6px 0 15px;color:#d4e7da;font-size:11px;line-height:1.5}.feature-guide>div:last-child{display:flex;justify-content:space-between;gap:10px}.feature-guide .text-button{color:#d4e7da}.feature-guide .button{color:#174c36;background:#fff}.guide-highlight{position:relative;z-index:6;outline:4px solid rgba(239,170,79,.85);outline-offset:5px;box-shadow:0 0 0 9999px rgba(12,39,29,.16),0 20px 55px rgba(25,67,48,.2)!important;transition:outline .25s,box-shadow .25s}@keyframes guide-in{from{opacity:0;transform:translateY(18px) scale(.96)}to{opacity:1;transform:none}}

/* Konto jako zestaw krótkich sekcji zamiast jednego długiego formularza. */
.account-guide { min-height: 40px; margin-top: 8px; color: #27674a; }
.account-menu { display: grid; grid-template-columns: repeat(2,1fr); gap: 8px; margin: 14px 0 8px; }.account-menu button,.account-more-panel button { display:flex;align-items:center;gap:9px;min-height:58px;padding:10px;border:1px solid #e0e8e1;border-radius:11px;color:#3a5647;background:#f9fbf8;text-align:left;font:inherit;font-size:18px}.account-menu span,.account-menu b,.account-menu small,.account-more-panel span,.account-more-panel b,.account-more-panel small{display:block}.account-menu b,.account-more-panel b{font-size:10px}.account-menu small,.account-more-panel small{margin-top:2px;color:#7a867f;font-size:8px}.account-more-panel{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:0 0 14px;padding:10px;border:1px solid #e3eae3;border-radius:13px;background:#f6f9f5}.account-more-panel[hidden]{display:none}.account-disclosure{padding:0!important;overflow:hidden}.account-disclosure>summary{display:flex;align-items:center;justify-content:space-between;min-height:58px;padding:13px 15px;list-style:none;cursor:pointer}.account-disclosure>summary::-webkit-details-marker{display:none}.account-disclosure>summary span,.account-disclosure>summary b,.account-disclosure>summary small{display:block}.account-disclosure>summary b{color:#315d48;font-size:12px}.account-disclosure>summary small{margin-top:2px;color:#78857e;font-size:9px}.account-disclosure>summary i{font-style:normal;transition:transform .22s}.account-disclosure[open]>summary i{transform:rotate(180deg)}.account-disclosure-body{padding:0 15px 15px;border-top:1px solid #e7ece7}.account-disclosure .packages-heading{margin-top:15px}.beta-invite-panel,.account-danger-zone{margin-top:12px;border:1px solid #e2e8e2;border-radius:11px;padding:0!important;background:#fafcf9}.beta-invite-panel summary,.account-danger-zone summary{padding:12px 14px;color:#486253;cursor:pointer;font-size:10px;font-weight:800}.beta-invite-panel>p,.beta-invite-panel>form,.beta-invite-panel>.account-status,.beta-invite-panel>.beta-invite-link,.account-danger-zone>p,.account-danger-zone>.account-delete{margin-left:14px;margin-right:14px}.account-danger-zone{margin-bottom:4px}.account-danger-zone>p{color:#7b817d;font-size:9px;line-height:1.5}
.today-plan-card{align-items:flex-start}.today-plan-card>div:last-child{flex:1}.today-recipes-cta{display:inline-flex;align-items:center;gap:5px;margin-top:10px;padding:0;border:0;color:#216447;background:transparent;font:inherit;font-size:9px;font-weight:800;text-align:left}.today-recipes-cta:hover{color:#d36f45}.today-recipes-cta span{font-size:13px;transition:transform .2s}.today-recipes-cta:hover span{transform:translateX(3px)}
.recipe-price-details { margin: 20px 0 0; border: 1px solid #e0e9e1; border-radius: 11px; background: #f8fbf8; }.recipe-price-details summary { padding: 12px; color: #3f6651; cursor: pointer; font-size: 11px; font-weight: 800; }.recipe-price-details p { padding: 0 12px 12px; margin: 0; color: #6b7a71; font-size: 10px; line-height: 1.5; }.modal-cta { position: sticky; z-index: 3; bottom: -30px; margin: 20px -30px -30px; padding: 15px 30px calc(15px + env(safe-area-inset-bottom)); background: rgba(255,253,249,.94); backdrop-filter: blur(14px); box-shadow: 0 -12px 30px rgba(28,62,45,.08); }
.stat-card[hidden] { display: none !important; }
.package-lock-hint { color:#7b8881;font-size:9px;line-height:1.35 }.preference-package-note{margin:12px 0 0;padding:11px 13px;border:1px solid #d9e6db;border-radius:11px;color:#376149;background:#eef7ef;font-size:10px;line-height:1.45}.preference-details.package-locked{background:#f3f5f2}.preference-details.package-locked summary{color:#7b847f}.preference-details.package-locked summary::after{content:"PRO";margin-left:auto;padding:4px 7px;border-radius:999px;color:#fff;background:#397a59;font-size:8px;font-weight:900;letter-spacing:.5px}.preferences-modal :disabled+span,.preferences-modal button:disabled,.preferences-modal select:disabled{cursor:not-allowed;opacity:.5}

@media (max-width: 720px) {
  .app-views-enabled .topbar { margin: 0 -16px 14px; padding: 0 16px; }
  .topbar h1 > span:last-child { display: none; }
  .app-views-enabled [data-app-view].is-active { animation-duration: .42s; }
  .stats-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; margin: 12px 0 24px; }
  .stat-card { min-height: 86px; padding: 12px; }.stat-icon{width:30px;height:30px;flex-basis:30px}.stat-card strong{font-size:18px}.stat-card span{white-space:normal}
  .recipe-heading { margin-top: 27px; }.recipe-grid { margin-bottom: 8px; }
  .shopping-section { margin-top: 3px; }.shopping-list { grid-template-columns: 1fr; padding: 12px; }.shopping-aisle-group summary { min-height: 58px; }.shopping-aisle-group summary strong{font-size:14px}.shopping-aisle-group summary small{font-size:10px}.shopping-aisle-group ul li{min-height:68px;padding:12px 0}.shopping-footer{position:sticky;bottom:76px;z-index:4;background:rgba(255,255,255,.96);backdrop-filter:blur(12px)}.share-shopping{width:100%;min-height:48px}.shopping-actions{width:100%}
  .pantry-page { grid-template-columns:1fr;min-height:0;padding:24px 18px;border-radius:20px}.pantry-page-art{grid-row:1;width:112px;height:112px;margin:0 auto}.pantry-page-art span{font-size:48px}.pantry-page-copy{text-align:center}.pantry-page-copy h2{font-size:34px}.pantry-quick-form{grid-template-columns:minmax(0,1fr) 86px}.pantry-quick-search{grid-column:1/-1}.pantry-quick-form label:nth-of-type(3){grid-column:1}.pantry-quick-form .pantry-primary{grid-column:2;grid-row:3;min-width:0;min-height:48px}.pantry-quick-products{justify-content:center;margin-top:0}.pantry-edit-all{justify-self:center;margin:0}.pantry-page-actions{justify-content:center}.pantry-page-preview>div{grid-template-columns:repeat(2,minmax(0,1fr))}.pantry-page-preview button{min-height:84px}
  .onboarding-modal,.plan-modes-modal{width:calc(100% - 16px);max-height:calc(100dvh - 16px);padding:24px 18px;border-radius:22px}.onboarding-choice-grid,.onboarding-inline-fields,.plan-mode-grid,.plan-mode-settings{grid-template-columns:1fr}.onboarding-actions{position:sticky;bottom:-24px;margin:22px -18px -24px;padding:13px 18px calc(13px + env(safe-area-inset-bottom));background:rgba(255,253,249,.96);backdrop-filter:blur(12px)}.onboarding-actions .button{min-width:0;flex:1}.onboarding-visual{width:125px;height:125px}.onboarding-visual img{width:72px}
  .feature-guide{right:12px;bottom:calc(80px + env(safe-area-inset-bottom));width:calc(100vw - 24px)}
  .guide-highlight{outline-width:3px;outline-offset:2px;box-shadow:0 0 0 9999px rgba(12,39,29,.11)!important}
  .account-menu{grid-template-columns:repeat(2,minmax(0,1fr))}.account-menu button{min-height:58px}.account-menu b{font-size:11px}.account-menu small{font-size:9px}.account-more-panel{grid-template-columns:1fr}.account-more-panel button{min-height:50px}.today-recipes-cta{font-size:10px}
  .hero-food{display:block;min-height:152px}.orange-disc{width:230px;height:230px;top:-48px;left:50%;margin-left:-115px}.food-plate{top:-8px;left:50%;width:175px;min-height:145px;padding:6px;transform:translateX(-50%) rotate(-3deg)}.food-plate>span{font-size:91px}.food-plate>small{max-width:160px;padding:6px 9px;font-size:8px}.hero-food .ingredient{display:none}.floating-price{right:15px;bottom:9px;min-width:132px;padding:8px 10px}.floating-price strong{font-size:13px}
  .modal-cta{bottom:-22px;margin:20px -18px -22px;padding:14px 18px calc(14px + env(safe-area-inset-bottom))}
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  ::view-transition-old(root),::view-transition-new(root),::view-transition-old(active-panel),::view-transition-new(active-panel){animation:none!important}
}

/* Autorski katalog: zdjęcie tylko tego samego dania, w pozostałych kartach ilustracja. */
.meal-image,.recipe-image,.modal-hero { position:relative; overflow:hidden; }
.meal-image img,.recipe-image img,.modal-hero img { display:block; position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.meal-image img { z-index:1; }
.recipe-image { min-width:0; }
.recipe-image img { border-radius:inherit; }
.recipe-image .recipe-illustration { object-fit:cover; transform:scale(1.3); }
.modal-hero .recipe-illustration { object-fit:cover; object-position:center 40%; }
.modal-hero { display:block; }
.recipe-browser-tools { display:flex; align-items:end; justify-content:space-between; gap:16px; margin:-2px 0 18px; padding:14px; border:1px solid #e1ebe3; border-radius:14px; background:#f8fbf8; }
.recipe-browser-tools[hidden],.recipe-pagination[hidden] { display:none; }
.recipe-browser-tools label { display:grid; gap:6px; width:min(100%,400px); color:#3c6650; font-size:11px; font-weight:800; }
.recipe-browser-tools input { width:100%; min-height:44px; padding:10px 12px; border:1px solid #d1dfd4; border-radius:9px; color:var(--ink); background:#fff; font:inherit; font-size:14px; }
.favorite-filter { flex:0 0 auto; min-height:44px; padding:8px 14px; border:1px solid #d1dfd4; border-radius:9px; color:#245d42; background:#fff; font:inherit; font-size:12px; font-weight:800; cursor:pointer; }
.favorite-filter.active { border-color:#cf756f; color:#a34243; background:#fff0ee; }
.recipe-heading-actions { display:flex; align-items:center; justify-content:flex-end; flex-wrap:wrap; gap:8px 14px; }
.recipe-heading-actions .text-button { min-height:44px; }
.store-visit-options { display:grid; gap:8px; margin-top:12px; padding-top:12px; border-top:1px solid #e1ebe3; }
.store-visit-options label { display:flex; align-items:center; justify-content:space-between; gap:10px; color:#3c6650; font-size:11px; font-weight:700; }
.store-visit-options select { min-height:38px; max-width:145px; padding:7px; border:1px solid #d1dfd4; border-radius:8px; background:#fff; color:var(--ink); font:inherit; }
.store-visit-options small { color:#708076; font-size:10px; line-height:1.45; }
.shopping-store-breakdown { display:flex; flex-wrap:wrap; gap:8px; padding:10px 18px; background:#f8fbf8; border-bottom:1px solid #e6efe8; }
.shopping-store-breakdown[hidden] { display:none; }
.shopping-store-breakdown span { padding:7px 9px; border-radius:8px; background:#fff; border:1px solid #e0eae2; color:#527264; font-size:10px; }
.shopping-store-breakdown strong { color:#245d42; }
.recipe-browser-tools p { max-width:440px; margin:0; color:#667a6b; font-size:10px; line-height:1.45; }
.recipe-pagination { display:flex; align-items:center; justify-content:center; gap:16px; margin:0 0 26px; }
.recipe-pagination button { min-height:42px; padding:8px 12px; border:1px solid #cddfcf; border-radius:9px; color:#245d42; background:#fff; font:inherit; font-size:11px; font-weight:800; }
.recipe-pagination button:disabled { cursor:default; opacity:.45; }
.recipe-pagination span { color:#617568; font-size:11px; font-weight:700; }
@media (max-width:720px) {
  .recipe-heading { flex-wrap:wrap; }
  .recipe-heading-actions { width:100%; justify-content:space-between; }
  .recipe-browser-tools { display:grid; }
  .recipe-browser-tools p { max-width:none; }
  .recipe-pagination { gap:8px; }
  .recipe-pagination button { padding:8px; }
  .recipe-pagination span { text-align:center; font-size:10px; }
}

.receipt-pantry-candidate[data-requires-full-correction] { border-color:#dfb981; background:#fffaf2; }
.receipt-pantry-candidate .receipt-correction-note { grid-column:1 / -1; margin:0; color:#81561d; font-size:10px; line-height:1.4; }

/* Aktualny znak z autorskiego pliku: pełne logo pozostaje czytelne także w konfiguratorze. */
.onboarding-visual { width: 180px; height: 165px; background: transparent; border-radius: 0; box-shadow: none; }
.onboarding-visual img { width: 160px; filter: drop-shadow(0 12px 10px rgba(37, 72, 55, .12)); }
@media (max-width: 720px) {
  .sidebar .brand-mark { width: 138px; height: 138px; flex-basis: 138px; }
  .sidebar .main-nav { margin-top: 12px; }
  .onboarding-visual { width: 150px; height: 140px; }
  .onboarding-visual img { width: 140px; }
}

.production-review-primary { justify-content: space-between; align-items: center; padding: 10px; border: 1px solid #d9e8dd; border-radius: 10px; background: #f5faf6; }
.production-import-toolbar { flex-wrap: wrap; }
.production-import-lifecycle { display: flex !important; flex-wrap: wrap; gap: 8px; margin-left: auto; }
.production-import-lifecycle button { white-space: nowrap; }
.production-review-primary .publish-button { min-height: 40px; }
.production-review-primary .production-dismiss { color: #9a3e29; background: #fff0ec; border-color: #f1d0c5; }
.daily-nutrition-adjust { display: block; margin: 5px 0 0; padding: 3px 0; border: 0; color: #1b6846; background: transparent; font: 700 10px/1.4 "DM Sans", sans-serif; text-align: left; cursor: pointer; }
.daily-calorie-meter { display: flex; align-items: center; gap: 8px; max-width: 360px; margin-top: 7px; }
.daily-calorie-meter[hidden] { display: none; }
.daily-calorie-meter-track { width: 138px; height: 7px; flex: none; overflow: hidden; border-radius: 999px; background: #dce9df; }
.daily-calorie-meter-track span { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #51b477, #16825a); transition: width .45s ease; }
.daily-calorie-meter small { color: #4b6c58; font-size: 10px; font-weight: 700; line-height: 1.3; }
.daily-calorie-meter.over-limit .daily-calorie-meter-track span { background: #d87558; }
.daily-calorie-meter.over-limit small { color: #a54b37; }
.daily-nutrition-adjust:hover { text-decoration: underline; }
.daily-nutrition-adjust:focus-visible { outline: 2px solid #4f9870; outline-offset: 3px; }
.daily-nutrition-adjust[hidden] { display: none; }
@media (max-width: 600px) { .daily-calorie-meter-track { width: min(33vw, 138px); } }
@media (prefers-reduced-motion: reduce) { .daily-calorie-meter-track span { transition: none; } }
.food-plate.has-photo { top: 5px; min-height: 226px; }
.food-plate > span.has-photo { display: block; width: 172px; height: 172px; overflow: hidden; border: 6px solid rgba(255, 255, 255, .96); border-radius: 50%; box-shadow: 0 17px 32px rgba(15, 38, 26, .28); font-size: 0; }
.food-plate > span.has-photo img { display: block; width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 720px) { .food-plate.has-photo { top: -9px; min-height: 160px; } .food-plate > span.has-photo { width: 128px; height: 128px; border-width: 4px; } }
.production-review-primary .production-card-select-all { margin: 0 auto 0 0; white-space: nowrap; }
.production-category-filter { position: relative; }
.production-category-filter summary { cursor: pointer; padding: 8px 10px; border: 1px solid #dfe6df; border-radius: 7px; background: #fff; color: #42624e; font-weight: 700; list-style: none; }
.production-category-filter summary::-webkit-details-marker { display: none; }
.production-category-filter[open] label { display: flex; margin-top: 7px; }
.production-selection-meta { margin: 4px 0 8px; color: #536b5d; font-size: 11px; line-height: 1.4; }
@media (max-width: 720px) { .production-review-primary { align-items: stretch; } .production-review-primary .production-card-select-all { width: 100%; } .production-review-primary .publish-button { flex: 1 1 100%; } }
.production-advanced-review { margin: 12px 0; color: #53665b; }
.production-advanced-review summary { cursor: pointer; font-size: 11px; font-weight: 700; }
.production-import-review [hidden] { display: none !important; }
.production-revision-panel { margin: 14px 0; padding: 16px; border: 1px solid #d3e6d9; border-radius: 12px; background: #f5fbf6; }
.production-add-many { margin-left: auto; min-height: 36px; white-space: nowrap; }
@media (max-width: 720px) { .production-add-many { width: 100%; margin-left: 0; } }
.production-revision-panel > strong { color: #244c38; font-size: 14px; }
.production-revision-panel > p, .production-manual-offers-form > small { display: block; margin: 6px 0 12px; color: #617267; font-size: 11px; line-height: 1.5; }
.production-manual-offers-form { display: grid; gap: 10px; }
.production-manual-offers-form > label { color: #315344; font-size: 12px; font-weight: 700; }
.production-manual-offers-form textarea { display: block; width: 100%; min-height: 118px; margin-top: 6px; padding: 10px; border: 1px solid #cbdccf; border-radius: 8px; background: white; color: #213e2e; font: inherit; font-size: 12px; line-height: 1.5; resize: vertical; }
.production-manual-offers-form .production-price-confirm { display: flex; align-items: flex-start; gap: 8px; font-weight: 500; }
.production-manual-offers-form .production-price-confirm input { margin-top: 2px; }
.production-manual-offers-form .button { justify-self: start; }
.production-revision-publish { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 10px; margin-top: 14px; padding-top: 12px; border-top: 1px solid #d3e6d9; font-size: 11px; color: #53665b; }

/* Horyzont planu: jeden dzień dla gościa, trzy dla Free, tydzień w Pro/Max. */
.week-days-row { display:flex; align-items:stretch; gap:10px; }
.week-days-row .week-grid { flex:1 1 auto; min-width:0; }
.week-days-row .week-grid[data-visible-days="1"] { flex:0 0 82px; grid-template-columns:82px; }
.week-days-row .week-grid[data-visible-days="3"] { flex:0 0 250px; grid-template-columns:repeat(3, 78px); }
.plan-access-hint { flex:1 1 180px; min-height:70px; border:1px solid #bdd9c3; border-radius:11px; padding:10px 14px; color:#20543b; background:linear-gradient(135deg,#ecf7ed,#fffdf8); font:inherit; font-size:11px; font-weight:800; line-height:1.4; text-align:left; cursor:pointer; transition:transform .2s ease, box-shadow .2s ease; }
.plan-access-hint:hover { transform:translateY(-2px); box-shadow:0 8px 20px rgba(31,72,54,.1); }
.plan-access-hint strong { display:block; font-size:11px; line-height:1.35; }
.plan-access-hint strong span { color:#1a8150; }
.plan-access-hint small { display:block; margin-top:5px; color:#537964; font-size:10px; font-weight:600; line-height:1.35; }
.plan-access-hint:focus-visible { outline:3px solid #6fa783; outline-offset:3px; }
.plan-access-hint[hidden] { display:none; }
.weekly-plan .day-pager button:disabled { cursor:default; opacity:.35; }
@media (max-width:600px) {
  .week-days-row { flex-wrap:wrap; gap:8px; }
  .week-days-row .week-grid[data-visible-days="1"] { flex:0 0 74px; }
  .week-days-row .week-grid[data-visible-days="3"] { flex:0 0 222px; }
  .week-days-row .week-grid[data-visible-days="3"] .week-day { flex:0 0 68px; }
  .plan-access-hint { flex:1 1 110px; min-height:62px; font-size:10px; }
}
@media (prefers-reduced-motion:reduce) { .plan-access-hint { transition:none; } }

/* Zamiana pojedynczego dania: wyraźna akcja premium i czytelny wybór na telefonie. */
.meal-card-actions { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:7px; }
.meal-swap-button { min-height:36px; padding:7px 11px; border:1px solid #b8d9c3; border-radius:9px; color:#1c6244; background:#eff8f1; font:700 11px/1.2 "DM Sans",sans-serif; cursor:pointer; transition:transform .18s ease,background .18s ease,box-shadow .18s ease; }
.meal-swap-button:hover { transform:translateY(-2px); background:#e2f3e6; box-shadow:0 8px 17px rgba(21,80,52,.1); }
.meal-swap-button:focus-visible,.plan-swap-option:focus-visible { outline:3px solid #8fc6a3; outline-offset:2px; }
.plan-swap-modal { position:relative; width:min(580px,calc(100% - 28px)); max-height:min(82vh,760px); padding:27px; border:0; border-radius:20px; overflow:auto; color:var(--ink); background:#fffdf9; box-shadow:0 25px 80px rgba(11,39,28,.28); }
.plan-swap-modal::backdrop { background:rgba(12,36,28,.6); backdrop-filter:blur(4px); }
.plan-swap-modal h2 { margin:5px 38px 7px 0; font-size:27px; }
.plan-swap-modal>p:not(.eyebrow) { color:#6d7c73; font-size:12px; line-height:1.5; }
.plan-swap-list { display:grid; gap:9px; margin-top:18px; }
.plan-swap-option { width:100%; display:flex; align-items:center; gap:12px; min-height:84px; padding:8px; border:1px solid #e1eae2; border-radius:13px; background:#fff; color:#254435; text-align:left; cursor:pointer; transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease; }
.plan-swap-option:hover { transform:translateY(-2px); border-color:#9ccbaf; box-shadow:0 10px 24px rgba(20,69,42,.1); }
.plan-swap-art { flex:0 0 82px; width:82px; height:66px; display:grid; place-items:center; overflow:hidden; border-radius:9px; font-size:37px; }
.plan-swap-art img { width:100%; height:100%; object-fit:cover; }
.plan-swap-copy { min-width:0; display:grid; gap:4px; }
.plan-swap-copy strong { font-size:12px; line-height:1.25; }
.plan-swap-copy small { color:#6b7d70; font-size:10px; line-height:1.3; }
.plan-swap-arrow { margin-left:auto; color:#267c52; font-size:20px; }
.plan-swap-empty { padding:18px; border:1px dashed #b9d2bf; border-radius:12px; color:#627367; background:#f7fbf7; font-size:12px; line-height:1.5; }
@media (max-width:720px) { .meal-card-actions { grid-column:1/-1; margin-top:0; } }
@media (max-width:480px) { .plan-swap-modal { padding:21px 15px; } .plan-swap-art { flex-basis:68px; width:68px; height:62px; } .plan-swap-option { gap:9px; } }
@media (prefers-reduced-motion:reduce) { .meal-swap-button,.plan-swap-option { transition:none; } }
.meal-seasonal { display:inline-flex; align-items:center; margin:7px 3px 0 0; padding:4px 7px; border:1px solid #d5e8be; border-radius:6px; color:#54713b; background:#f3f8e9; font-size:9px; font-weight:800; line-height:1.3; }

.community-recipes-modal { position:relative; width:min(720px,calc(100% - 24px)); max-height:min(88vh,900px); padding:30px; border:0; border-radius:22px; overflow:auto; background:#fffdf8; color:var(--ink); box-shadow:0 28px 90px rgba(12,36,27,.28); }
.community-recipes-modal::backdrop { background:rgba(11,35,25,.62); backdrop-filter:blur(5px); }
.community-recipes-close { position:absolute; top:17px; right:18px; width:36px; height:36px; border:0; border-radius:50%; background:#edf5eb; color:#24573d; font-family:inherit; font-size:24px; line-height:1; cursor:pointer; }
.community-recipes-modal h2 { margin:6px 42px 8px 0; font-size:clamp(25px,4vw,36px); line-height:1.1; }
.community-recipes-modal>p:not(.eyebrow) { max-width:58ch; color:#64766a; font-size:13px; line-height:1.55; }
.community-recipes-status { min-height:21px; font-weight:700; color:#236544 !important; }
.community-recipe-form { display:grid; gap:13px; padding:18px; border:1px solid #dce9d9; border-radius:16px; background:linear-gradient(155deg,#f5faf2,#fffdf8 65%); }
.community-recipe-form label,.community-recipe-review label { display:grid; gap:6px; font-size:12px; font-weight:800; color:#244837; }
.community-recipe-form input,.community-recipe-form select,.community-recipe-form textarea,.community-recipe-review input { width:100%; min-width:0; padding:10px 12px; border:1px solid #c8d9c9; border-radius:9px; background:#fff; color:#243a2c; font:inherit; font-weight:500; }
.community-recipe-form textarea { resize:vertical; line-height:1.5; }
.community-recipe-form small { font-weight:500; color:#6b7b6f; }
.community-recipe-fields { display:grid; grid-template-columns:2fr 1fr 1fr; gap:10px; }
.community-recipe-form>.button { justify-self:start; min-height:42px; }
.community-recipe-history,.community-recipe-moderation { margin-top:22px; }
.community-recipe-history h3,.community-recipe-moderation h3 { margin:0 0 10px; font-size:18px; }
.community-recipe-history>div,.community-recipe-moderation>div { display:grid; gap:9px; }
.community-recipe-item { display:grid; gap:6px; padding:13px 15px; border:1px solid #dfe8de; border-radius:12px; background:#fff; font-size:12px; }
.community-recipe-item>strong { font-size:14px; }
.community-recipe-item>span,.community-recipe-item>small { color:#68766c; }
.community-recipe-item>b { color:#23734a; }
.community-recipe-item details { margin-top:4px; padding-top:9px; border-top:1px solid #e6eee4; }
.community-recipe-item summary { color:#225b3e; cursor:pointer; font-weight:800; }
.community-recipe-item ul,.community-recipe-item ol { margin:8px 0 2px; padding-left:21px; line-height:1.5; }
.community-recipe-item li { margin:4px 0; }
.community-recipe-revise { justify-self:start; margin-top:5px; padding:8px 11px; border:1px solid #b5d4b9; border-radius:8px; color:#20543b; background:#e9f6eb; font:700 11px/1.3 "DM Sans",sans-serif; cursor:pointer; }
.community-recipe-revise:hover { background:#dff0e2; }
.community-recipe-revise:focus-visible { outline:2px solid #4c9169; outline-offset:2px; }
.community-recipe-review details { padding:7px 0; }
.community-recipe-review summary { cursor:pointer; font-weight:800; }
.community-recipe-review li { margin:5px 0; }
.community-recipe-review>div { display:flex; flex-wrap:wrap; gap:8px; }
.community-recipe-review button { padding:8px 11px; border:1px solid #a8cdb0; border-radius:8px; background:#e9f6eb; color:#20543b; font-family:inherit; font-size:11px; font-weight:700; line-height:1.3; cursor:pointer; }
.community-recipe-review button[data-community-review="reject"] { border-color:#e3c6b9; background:#fff1eb; color:#874a36; }
.community-recipe-review button:disabled { opacity:.55; cursor:wait; }
@media(max-width:600px) { .community-recipes-modal { padding:23px 15px; } .community-recipe-fields { grid-template-columns:repeat(2,minmax(0,1fr)); } .community-recipe-fields label:first-child { grid-column:1/-1; } .community-recipe-form { padding:13px; } }
.loyalty-rewards { display:grid; gap:13px; margin:20px 0 12px; padding:17px; border:1px solid #d1e4cc; border-radius:15px; background:linear-gradient(135deg,#f2faee,#fff9ed); }
.loyalty-rewards h4 { margin:4px 0 6px; font-size:18px; }
.loyalty-rewards p { margin:0; font-size:12px; line-height:1.45; }
.loyalty-rewards small { color:#66756a; line-height:1.45; }
.loyalty-reward-actions { display:flex; flex-wrap:wrap; gap:9px; }
.loyalty-reward-actions button { min-height:40px; padding:8px 13px; border:1px solid #368653; border-radius:9px; background:#237a49; color:white; font-family:inherit; font-size:12px; font-weight:800; cursor:pointer; transition:transform .18s ease,box-shadow .18s ease; }
.loyalty-reward-actions button:not(:disabled):hover { transform:translateY(-2px); box-shadow:0 8px 16px rgba(18,87,45,.17); }
.loyalty-reward-actions button:disabled { background:#dce8db; border-color:#d0ded0; color:#66766b; cursor:not-allowed; }
@media(prefers-reduced-motion:reduce) { .loyalty-reward-actions button { transition:none; } }
.referral-link { grid-template-columns: minmax(0, 1fr) auto auto; }
@media (max-width: 460px) {
  .referral-link { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .referral-link input { grid-column: 1 / -1; }
}
.promotion-edit { grid-column:2; justify-self:start; margin-top:5px; padding:4px 0; color:var(--forest); font-size:10px; }
.production-import-list-toolbar { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:16px; color:#315344; font-size:12px; }
.production-import-item-actions { display:flex; align-items:center; justify-content:flex-end; flex-wrap:wrap; gap:8px; }
.production-import-archive { color:#9b4e43; }
@media (max-width: 520px) { .production-import-item { align-items:flex-start; flex-direction:column; } .production-import-item-actions { width:100%; justify-content:flex-start; } }

/* Zakupy z wybranych przepisów i obsługa całych kart. */
.nav-action { width:100%; border:0; background:transparent; text-align:left; font-family:inherit; cursor:pointer; }
.meal-card { position:relative; }
.meal-card-hitarea { position:absolute; z-index:1; inset:0; width:100%; border:0; border-radius:inherit; background:transparent; cursor:pointer; }
.meal-card-hitarea:focus-visible { outline:3px solid #80b996; outline-offset:3px; }
.meal-card-actions { position:relative; z-index:2; flex-wrap:wrap; justify-content:flex-start; }
.meal-image .save-button { z-index:3; cursor:pointer; }
.recipe-card { cursor:pointer; }
.recipe-card .shopping-recipe-toggle { position:relative; z-index:2; margin:2px 0 0 4px; }
.shopping-recipe-toggle { min-height:36px; padding:7px 11px; border:1px solid #bed7c5; border-radius:9px; color:#235b40; background:#f3faf4; font:700 11px/1.2 "DM Sans",sans-serif; cursor:pointer; }
.shopping-recipe-toggle.selected { border-color:#70ad81; color:#155039; background:#e5f4e8; }
.shopping-recipe-toggle:focus-visible,.shopping-selected-recipes button:focus-visible,.dialog-back:focus-visible { outline:3px solid #80b996; outline-offset:2px; }
.shopping-selected-recipes { display:grid; gap:8px; margin:0 0 14px; padding:13px 15px; border:1px solid #d9e8dc; border-radius:13px; background:#f8fbf7; color:#315543; font-size:12px; }
.shopping-selected-recipes>div { display:flex; flex-wrap:wrap; gap:7px; }
.shopping-selected-recipes button { min-height:34px; padding:6px 10px; border:1px solid #bed7c5; border-radius:8px; color:#235b40; background:#fff; font:700 11px/1.3 "DM Sans",sans-serif; cursor:pointer; }
.shopping-selected-recipes p { margin:0; line-height:1.5; }
.shopping-selected-recipes>[data-shopping-choose] { justify-self:start; }
.shopping-card.is-empty .shopping-footer { display:none; }
.shop-total { flex:none; white-space:nowrap; }
.recipe-ingredient-name { display:grid; gap:3px; min-width:0; }
.recipe-pantry-amount { color:#26724e; font-size:10px; font-weight:700; }
.modal-cta { flex-wrap:wrap; }
.dialog-back { position:relative; z-index:12; display:inline-flex; align-items:center; min-height:34px; margin:8px 0 6px 8px; padding:5px 10px; border:1px solid #c9ddcf; border-radius:8px; color:#245b3f; background:#f5fbf5; font:700 12px/1.2 "DM Sans",sans-serif; cursor:pointer; }
@media (max-width:720px) { .meal-card-actions { justify-content:flex-start; } .modal-cta { align-items:flex-start; } }
