:root{--zdk-dark: #3a3a3a;--zdk-dark-hover: #2e2e2e;--zdk-dark-active: #242424;--zdk-peach: #f4d7c8;--zdk-peach-hover: #f1c8b2;--zdk-peach-active: #e8b59a;--zdk-text-on-peach: #262626;--zdk-bg-soft: #f7f5f2;--zdk-border-soft: #e5ddd6}:root{--app-font: "Bricolage Grotesque", sans-serif;font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;min-height:100vh;font-family:var(--app-font)}.recipe-title{font-family:Bricolage Grotesque,sans-serif;font-weight:600;letter-spacing:-.02em}.modal-meta .pill{font-family:Bricolage Grotesque,sans-serif;font-weight:500}.chip-tag{font-family:Bricolage Grotesque,sans-serif;font-weight:400}a{color:inherit;text-decoration:none}:root{font-family:system-ui,-apple-system,BlinkMacSystemFont,sans-serif;color:var(--text-main);background-color:var(--page-bg);--page-bg: #f4f4f5;--app-bg: #f4f4f5;--card-soft: #ffece2;--card-softer: var(--zdk-bg-soft);--card-white: #ffffff;--accent-main: var(--zdk-dark);--accent-main-hover: var(--zdk-dark-hover);--accent-main-active: var(--zdk-dark-active);--accent-peach: var(--zdk-peach);--accent-peach-hover: var(--zdk-peach-hover);--accent-peach-active: var(--zdk-peach-active);--text-on-peach: var(--zdk-text-on-peach);--text-main: var(--zdk-dark);--text-muted: #6b7280;--text-subtle: #9ca3af;--border-soft: var(--zdk-border-soft);--status-ok-bg: #ecfdf3;--status-ok-text: #166534;--status-warn-bg: #fef3c7;--status-warn-text: #92400e;--status-critical-bg: #fee2e2;--status-critical-text: #b91c1c}*,*:before,*:after{box-sizing:border-box}body{margin:0;background:var(--page-bg)}.app-root{min-height:100vh;padding:16px 0 32px;background:var(--app-bg);color:var(--text-main)}.page{max-width:1120px;margin:0 auto;padding:16px}.content{width:100%;margin:0 auto 32px}.pageHeader{display:flex;flex-direction:column;gap:12px;padding:32px 0 16px;margin-bottom:-20px}.pageHeaderTop{display:flex;align-items:flex-start;justify-content:space-between;gap:24px}.pageHeaderTitle{margin:0 0 -10px;font-size:clamp(26px,4vw,30px);line-height:1.2;font-weight:700;color:var(--text-main)}.pageHeaderDescription{margin:0;font-size:16px;line-height:1.6;color:var(--text-muted)}.pageHeaderRight{flex-shrink:0;display:flex;align-items:flex-start;gap:12px}.pageHeaderRight>*{margin:0}@media(max-width:720px){.pageHeaderTop{flex-direction:column;gap:16px}.pageHeaderRight{width:100%;justify-content:flex-start}}.plan-layout,.db-layout,.shop-layout{width:100%;display:flex;flex-direction:column}.shop-layout{margin-top:0}.brand-wrap{display:flex;align-items:center;justify-content:space-between;width:100%;margin-bottom:8px}.brand-title{display:inline-flex;align-items:center;font-size:20px;font-weight:600;color:var(--text-main);margin:0}.brand-actions{margin-left:auto;flex-shrink:0}.brand-logo{height:48px;width:auto}.logo-wrapper{width:36px;height:36px;border-radius:50%;overflow:hidden;box-shadow:0 4px 12px #0000001f;display:flex;align-items:center;justify-content:center}.logo-img{width:100%;height:100%;object-fit:cover;display:block}.app-header{display:flex;align-items:center;padding:16px 0;gap:24px}.app-header-left{display:flex;align-items:center;gap:12px}.user-menu{position:relative}.user-trigger{width:44px;height:44px;border-radius:50%;border:none;background:#fff;box-shadow:0 4px 12px #00000014;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform .16s ease,box-shadow .16s ease}.user-trigger:hover{transform:translateY(-1px);box-shadow:0 8px 18px #0000001f}.user-trigger:focus-visible{outline:3px solid rgba(201,109,45,.35);outline-offset:2px}.user-trigger-icon{font-size:18px}.user-dropdown{position:absolute;right:0;top:calc(100% + 10px);min-width:220px;background:#fff;border-radius:16px;padding:16px;box-shadow:0 18px 30px #0000001f;z-index:10}.user-menu-list{list-style:none;margin:0 0 12px;padding:0;display:flex;flex-direction:column;gap:6px}.user-menu-item{width:100%;border:none;border-radius:14px;padding:10px 12px;background:var(--card-softer);display:flex;align-items:center;gap:10px;cursor:pointer;transition:background .16s ease,transform .16s ease;font:inherit;text-align:left}.user-menu-item:disabled{cursor:not-allowed;opacity:.5}.user-menu-item:not(:disabled):hover{background:#f6ede3;transform:translateY(-1px)}.user-menu-item-icon{display:inline-flex;width:32px;height:32px;border-radius:12px;align-items:center;justify-content:center;font-size:16px;background:#fff4ed}.user-menu-item-body{display:flex;flex-direction:column;gap:2px}.user-menu-item-label{font-weight:600;font-size:14px;color:var(--text-main)}.user-menu-item-desc{font-size:12px;color:var(--text-muted)}.user-menu-divider{width:100%;height:1px;background:#0000000f;margin:10px 0 14px}.user-email{font-size:13px;color:#8d7a69;margin-bottom:10px;word-break:break-word}.user-error{font-size:13px;color:#c62828;margin-bottom:10px}.user-dropdown-btn{width:100%;border:none;border-radius:12px;padding:10px 16px;background:#c96d2d;color:#fff;font-weight:600;cursor:pointer}.user-dropdown-btn:disabled{opacity:.65;cursor:not-allowed}.main-tabs-wrap{display:flex;justify-content:center;align-items:center;width:100%;margin:-60px auto 4px}.main-tabs{display:inline-flex;padding:6px 10px;border-radius:40px;background:var(--card-white);box-shadow:0 10px 24px #0000000f;gap:4px}.main-tab-btn{border:none;padding:9px 26px;border-radius:999px;background:transparent;font-size:14px;font-weight:500;color:var(--text-muted);cursor:pointer;transition:all .18s ease}.main-tab-btn.active{background:var(--zdk-dark);color:#fff;box-shadow:0 4px 10px #0f172a33}.main-tab-btn.active:hover{background:var(--zdk-dark-hover)}.main-tab-btn.active:active{background:var(--zdk-dark-active)}.main-tab-btn:hover:not(.active){background:var(--card-softer)}.top-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:16px;margin:20px 0}.meals-per-day-select{border-radius:1000px}.group-block{min-height:100%}.day-kpi-value{font-weight:700;color:var(--text-main)}.day-kpi-value.kpi-ok{color:var(--status-ok-text)}.day-kpi-value.kpi-low{color:var(--accent-main)}.day-kpi-value.kpi-high{color:var(--status-critical-text)}.day-kpi.kpi-ok{background:var(--status-ok-bg)}.day-kpi.kpi-warning{background:var(--status-warn-bg)}.day-kpi.kpi-critical{background:var(--status-critical-bg)}.day-kpi.kpi-ok .day-kpi-value{color:var(--status-ok-text)}.day-kpi.kpi-warning .day-kpi-value{color:var(--status-warn-text)}.day-kpi.kpi-critical .day-kpi-value{color:var(--status-critical-text)}.week-bar-wrapper{display:flex;align-items:center;justify-content:space-between;margin:16px 0}.list-header{margin:6px 0 10px;display:flex;align-items:center;justify-content:space-between}.list-header .section-title{margin:0;font-size:20px;line-height:1.2}@media(max-width:900px){.top-grid{grid-template-columns:1fr}}.group-block{display:flex;flex-direction:column;gap:6px;padding:14px 18px 10px;max-width:540px;border-radius:32px;background:#fff;box-shadow:0 6px 18px #0000000a}.group-block-heading{margin:0 0 6px;font-size:18px;font-weight:600;color:var(--text-main)}.group-selector,.group-tabs{display:flex;gap:8px;flex-wrap:wrap}.group-btn{display:inline-flex!important;align-items:center;justify-content:center;border:0px solid var(--border-soft)!important;padding:4px 10px;border-radius:999px;font-size:14px;cursor:pointer;background:#f4efe9!important;color:var(--text-main)!important;white-space:nowrap;transition:background .15s ease,color .15s ease,border-color .15s ease,box-shadow .15s ease}.group-btn:hover{background:#ece5dd!important;color:var(--text-main)!important}.group-btn:active{background:#e3d9cf!important;color:var(--text-main)!important}.group-btn.selected,.group-btn-active,.group-btn.active{background:var(--accent-peach)!important;border-color:transparent!important;color:var(--text-on-peach)!important;font-weight:600;box-shadow:0 3px 8px #0000000f}.group-btn.selected:hover,.group-btn-active:hover,.group-btn.active:hover{background:var(--accent-peach)!important;color:var(--text-on-peach)!important}.group-btn.selected:active,.group-btn-active:active,.group-btn.active:active{background:var(--accent-peach-active)!important;color:var(--text-on-peach)!important}.group-desc{font-size:13px;padding:2px 2px 0;color:var(--text-subtle)}.day-summary{flex:1;max-width:760px;padding:18px 24px 14px;border-radius:32px;background:#fff;box-shadow:0 10px 26px #0000000a;display:flex;flex-direction:column;gap:8px}.day-summary-header{display:flex;align-items:center;gap:16px}.meals-per-day{margin-left:auto;display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--text-muted)}.meals-per-day-select-wrap{position:relative;height:32px;border-radius:999px}.meals-per-day-select{appearance:none;-webkit-appearance:none;-moz-appearance:none;padding:0 30px 0 14px;min-width:64px;height:32px;border-radius:999px;border:1px solid var(--border-soft);background:var(--card-softer);font-size:13px;font-weight:600;color:var(--text-muted);cursor:pointer;line-height:32px;text-align:center;text-align-last:center;transition:all .16s ease}.meals-per-day-select-wrap:after{content:"▾";position:absolute;right:12px;top:50%;transform:translateY(-50%);font-size:10px;color:var(--text-muted);pointer-events:none}.meals-per-day-select:hover{background:var(--accent-peach)}.meals-per-day-select:focus{outline:none;box-shadow:0 0 0 2px #0f172a1f}.day-summary-title{font-size:17px;font-weight:600;color:var(--text-main)}.day-kpi-row{display:flex;gap:10px;margin-top:2px}.day-kpi{flex:1;padding:10px 12px;border-radius:18px;background:var(--status-warn-bg);font-size:13px;display:flex;flex-direction:column;gap:2px;box-shadow:0 2px 6px #00000005}.day-kpi-label{font-size:10px;color:var(--text-muted)}.day-summary-sub{font-size:12px;color:var(--text-subtle)}.day-warnings{margin-top:8px;display:flex;flex-wrap:wrap;gap:8px}.day-warning{font-size:12px;padding:4px 10px;border-radius:999px;font-weight:500}.day-warning-critical{background:var(--status-critical-bg);color:var(--status-critical-text)}.day-warning-warning,.day-warning-info{background:var(--status-warn-bg);color:var(--status-warn-text)}.filter-panel{margin-top:0;margin-bottom:10px;padding:10px 18px 12px;background:#fff;border-radius:26px;box-shadow:0 6px 18px #0000000a}.db-layout .filter-panel{margin-top:20px}.filter-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.filter-title{font-size:15px;font-weight:600;color:var(--text-main)}.filter-active{font-size:11px;color:var(--text-subtle)}.filter-row{display:flex;flex-wrap:nowrap;gap:8px;margin-top:4px;overflow-x:auto}.filter-pill{padding:6px 12px;border-radius:999px;border:1px solid var(--border-soft);background:var(--zdk-bg-soft);font-size:12px;color:var(--text-main);cursor:pointer;white-space:nowrap;box-shadow:0 2px 5px #00000005;transition:all .18s ease}.filter-pill:hover:not(.active){background:var(--accent-peach);border-color:var(--zdk-border-soft);transform:translateY(-1px);box-shadow:0 3px 8px #0f172a1f;color:var(--text-on-peach)}.filter-pill.active{background:var(--accent-peach);border-color:var(--zdk-border-soft);color:var(--text-on-peach);font-weight:600;box-shadow:0 3px 8px #3a3a3a2e}.filter-pill.active:hover{background:var(--accent-peach-hover);box-shadow:0 3px 10px #3a3a3a38;transform:translateY(-1px);color:var(--text-on-peach)}.filter-pill.active:active{background:var(--accent-peach-active)}.db-filter-panel{margin:8px 0 16px;padding:20px 24px 24px;border-radius:22px;background:#fff;border:1px solid rgba(58,58,58,.06);box-shadow:0 20px 35px #0f172a14}.db-filter-panel-header{display:flex;justify-content:space-between;align-items:center;gap:12px}.db-filter-panel-title{font-size:14px;font-weight:600;color:var(--text-main);letter-spacing:.2px}.db-filter-panel-body{display:flex;flex-direction:column;gap:18px;margin-top:12px}.dbAdvancedPanel{margin:0;overflow:hidden;max-height:0;opacity:0;transform:translateY(-4px);transition:max-height .22s ease,opacity .18s ease,transform .22s ease;pointer-events:none}.dbAdvancedPanel.open{margin:8px 0 16px;max-height:1200px;opacity:1;transform:translateY(0);pointer-events:auto}.dbAdvancedPanel .db-filter-panel{margin:0}.db-advanced-panel-actions{display:flex;justify-content:flex-end;margin-bottom:16px}.db-advanced-reset-btn{font-size:12px;padding:6px 16px;border-radius:999px;background:var(--accent-peach);color:var(--text-on-peach);box-shadow:0 6px 14px #e2956e66}.db-advanced-reset-btn:hover{background:var(--accent-peach-hover)}.db-advanced-reset-btn:active{background:var(--accent-peach-active)}.db-filter-group{display:flex;flex-direction:column;gap:10px}.db-filter-group-header{display:flex;justify-content:space-between;align-items:center;gap:8px}.db-filter-group-title{font-size:13px;font-weight:600;color:var(--text-main)}.db-filter-group-value{font-size:12px;color:var(--text-muted)}.db-filter-chip-row{display:flex;flex-wrap:wrap;gap:8px}.db-filter-panel input[type=range]{width:100%;-webkit-appearance:none;appearance:none;height:10px;border-radius:999px;background:#efe8e2;outline:none;transition:box-shadow .2s ease;box-shadow:inset 0 2px 4px #0f172a14}.db-filter-panel input[type=range]:focus-visible{box-shadow:inset 0 2px 4px #0f172a14,0 0 0 3px #fad6c6b3}.db-filter-panel input[type=range]::-webkit-slider-runnable-track{height:10px;border-radius:999px;background:#efe8e2}.db-filter-panel input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;height:20px;width:20px;border-radius:50%;background:#fff;box-shadow:0 4px 10px #0f172a2e;border:3px solid #fad6c6;margin-top:-5px}.db-filter-panel input[type=range]::-moz-range-track{height:10px;border-radius:999px;background:#efe8e2}.db-filter-panel input[type=range]::-moz-range-thumb{height:20px;width:20px;border-radius:50%;background:#fff;box-shadow:0 4px 10px #0f172a2e;border:3px solid #fad6c6}.db-filter-panel input[type=range]::-ms-track{height:10px;border-radius:999px;background:transparent;border-color:transparent;color:transparent}.db-filter-panel input[type=range]::-ms-fill-lower,.db-filter-panel input[type=range]::-ms-fill-upper{background:#efe8e2;border-radius:999px}.db-filter-panel input[type=range]::-ms-thumb{height:20px;width:20px;border-radius:50%;background:#fff;box-shadow:0 4px 10px #0f172a2e;border:3px solid #fad6c6}.db-filter-panel input[type=range]{background:linear-gradient(to right,#fad6c6,#fad6c6) no-repeat,#efe8e2;background-size:100% 10px}.db-kcal-sliders{display:flex;flex-direction:column;gap:8px}.db-kcal-sliders input:last-of-type{display:none}.db-filter-scale{display:flex;justify-content:space-between;font-size:11px;color:var(--text-muted)}.chip-btn-ghost{background:transparent;color:var(--text-main);border:1px solid var(--zdk-border-soft);box-shadow:none}.chip-btn-ghost:hover{background:#fff9;color:var(--text-main)}.chip-btn-ghost.chip-btn-active{background:var(--accent-peach);color:var(--text-on-peach);border-color:transparent}#db-advanced-filters .db-filter-chip-row .chip-btn{background:#f5efe8!important;color:var(--text-main)!important;border:none!important;font-weight:600}#db-advanced-filters .db-filter-chip-row .chip-btn.chip-btn-active{background:var(--accent-peach)!important;color:var(--text-on-peach)!important}.db-filter-reset-btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.search-bar{margin:4px 0 14px}.search-bar input{width:100%;padding:12px 18px;border-radius:999px;border:0 px solid var(--border-soft);background:#fff;color:var(--text-main);font-size:15px;transition:box-shadow .18s ease,border-color .18s ease}.search-bar input::placeholder{color:var(--text-subtle)}.search-bar input:focus{outline:none;box-shadow:0 0 0 3px #0f172a1a}.search-mode-note{font-size:13px;color:var(--text-muted);margin:0 0 16px}.db-header{display:flex;flex-direction:column;align-items:flex-start;gap:6px;margin-bottom:14px;padding:0;border-radius:0;background:transparent;box-shadow:none}.db-header:after{content:none}.db-header .section-title{font-size:20px;font-weight:700;color:var(--text-main);letter-spacing:.4px}.db-sub{font-size:14px;color:var(--text-muted);max-width:480px;line-height:1.4}.replace-modal-backdrop{position:fixed;inset:0;background:#0000003d;display:flex;justify-content:center;align-items:flex-start;padding:60px 16px;z-index:1000}.replace-modal{width:min(780px,100%);background:var(--card-softer);border-radius:28px;padding:24px 24px 28px;box-shadow:0 20px 40px #0000002e;max-height:88vh;overflow-y:auto}.replace-modal-header{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}.replace-modal-title{margin:0;font-size:20px;font-weight:600;color:var(--text-main)}.replace-modal-close{border:none;background:var(--accent-peach);color:var(--text-on-peach);border-radius:999px;width:30px;height:30px;font-size:16px;cursor:pointer}.replace-modal-close:hover{background:var(--accent-peach-hover)}.replace-modal-close:active{background:var(--accent-peach-active)}.replace-modal-search{margin-bottom:18px}.replace-modal-search input{width:100%;padding:12px 18px;border-radius:999px;border:2px solid var(--border-soft);background:var(--card-softer);color:var(--text-main);font-size:15px;transition:box-shadow .18s ease,border-color .18s ease}.replace-modal-search input::placeholder{color:var(--text-subtle)}.replace-modal-search input:focus{outline:none;box-shadow:0 0 0 3px #0f172a1a}.replace-modal-filters{display:flex;align-items:center;gap:12px;margin-bottom:18px}.modal-filter-row{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px;scrollbar-width:none;flex:1}.modal-filter-row::-webkit-scrollbar{display:none}.modal-filter-info{flex-shrink:0;font-size:12px;color:var(--text-subtle);white-space:nowrap}.modal-filter-info button{border:none;background:transparent;color:var(--text-muted);cursor:pointer;padding:0;font:inherit;text-decoration:underline}.replace-modal-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}.replace-card{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:10px;border-radius:22px;border:1px solid var(--border-soft);background:var(--card-white);color:var(--text-main);text-align:left;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;position:relative}.replace-card:hover{transform:translateY(-2px);box-shadow:0 8px 18px #0f172a26;border-color:var(--accent-main)}.replace-card-image-wrapper{width:100%;height:130px;border-radius:16px;overflow:hidden;background:var(--card-softer)}.replace-card-image{width:100%;height:100%;object-fit:cover;display:block}.replace-card-content{display:flex;flex-direction:column;gap:4px;width:100%}.replace-card-title{font-size:15px;font-weight:600}.replace-card-kcal{font-size:13px;color:var(--accent-main)}.replace-modal-empty{grid-column:1 / -1;padding:20px;text-align:center;font-size:14px;color:var(--text-muted);background:var(--card-soft);border-radius:18px}.favorites-overlay{position:fixed;inset:0;background:#0f172a73;display:flex;justify-content:center;align-items:flex-start;padding:40px 16px;overflow-y:auto;z-index:900}.favorites-panel{width:min(1100px,100%);background:#fffaf5;border-radius:28px;padding:32px;box-shadow:0 30px 60px #0f172a33}.favorites-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}.favorites-heading h2{margin:4px 0 0;font-size:26px}.favorites-kicker{text-transform:uppercase;letter-spacing:.08em;font-size:12px;margin:0;color:var(--text-subtle)}.favorites-subtitle{margin:6px 0 0;font-size:14px;color:var(--text-muted)}.favorites-close{border:none;background:var(--card-white);border-radius:999px;width:40px;height:40px;font-size:18px;cursor:pointer;box-shadow:0 6px 20px #0000001f}.favorites-grid{margin-top:24px}.favorites-empty{margin-top:28px;background:var(--card-softer);border-radius:24px;padding:32px;text-align:center;color:var(--text-muted);font-size:15px}@media(max-width:640px){.favorites-panel{padding:24px;border-radius:22px}.favorites-close{width:36px;height:36px}}.week-bar-wrapper{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.week-bar-row{display:flex;align-items:center;justify-content:space-between;gap:16px}.week-bar{display:inline-flex;flex-wrap:wrap;gap:6px}.week-bar .day-btn{padding:8px 18px;border-radius:999px;background:var(--card-white);color:var(--text-muted);font-size:13.5px;font-weight:600;border:none;cursor:pointer;transition:all .2s ease;box-shadow:0 3px 6px #0f172a14}.week-bar .day-btn.active{background:var(--zdk-dark);color:#fff;border-color:var(--accent-main);font-weight:700;box-shadow:0 4px 10px #0f172a2e}.week-bar .day-btn.active:hover{background:var(--zdk-dark-hover)}.week-bar .day-btn.active:active{background:var(--zdk-dark-active)}.week-bar .day-btn:hover:not(.active){background:var(--card-softer);color:var(--text-main);transform:translateY(-1px)}.section-title{margin:0 0 8px;font-size:16px;font-weight:600;color:var(--text-main)}.meals{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.meals-toolbar{display:flex;justify-content:flex-end;align-items:center;margin:6px 4px 8px}.meals-dropdown-wrap{display:flex;align-items:center;gap:6px}.meals-dropdown-label{font-size:13px;color:var(--text-muted);font-weight:500}.meals-dropdown{border:1px solid var(--border-soft);background:var(--card-softer);color:var(--text-main);font-size:13px;border-radius:999px;padding:4px 10px;cursor:pointer;transition:.2s}.meals-dropdown:hover{background:var(--accent-peach)}.card{background:var(--card-white);border-radius:20px;box-shadow:0 4px 10px #0000000f;overflow:hidden;display:flex;flex-direction:column;position:relative}.recipe-card{position:relative}.card-media{position:relative;width:100%;height:150px;border-radius:20px 20px 18px 18px;overflow:hidden}.card-image{width:100%;height:100%;object-fit:cover;display:block}.card-image-placeholder{width:100%;height:100%;background:linear-gradient(135deg,var(--accent-peach),var(--card-soft));display:flex;align-items:center;justify-content:center;font-size:32px}.card-media-overlay{position:absolute;inset:0;display:flex;align-items:flex-end;justify-content:space-between;padding:10px 12px;background:linear-gradient(180deg,#0000,#00000059);color:#fff;font-size:12px;text-transform:uppercase;letter-spacing:.06em}.card-overlay-label{font-weight:600;font-size:10px}.card-overlay-kcal{font-size:12px;font-weight:600}.chip-btn{padding:5px 10px;border-radius:999px;border:1px solid transparent;background:var(--zdk-dark);color:#fff;font-size:11px;cursor:pointer;transition:all .16s ease;box-shadow:0 3px 8px #3a3a3a2e}.chip-btn:not(.secondary):not(.danger):hover{background:var(--zdk-dark-hover);box-shadow:0 4px 10px #3a3a3a3d}.chip-btn:not(.secondary):not(.danger):active{background:var(--zdk-dark-active)}.chip-btn.secondary{background:var(--accent-peach);color:var(--text-on-peach);border-color:var(--zdk-border-soft)}.chip-btn.secondary:hover{background:var(--accent-peach-hover)}.chip-btn.secondary:active{background:var(--accent-peach-active)}.chip-btn.danger{background:var(--status-critical-bg);color:var(--status-critical-text)}.chip-btn.danger:hover{background:var(--status-critical-bg);box-shadow:0 4px 10px #3a3a3a1f}.card-content{padding:14px 14px 16px;display:flex;flex-direction:column;gap:16px}.card-middle{display:flex;flex-direction:column;gap:6px}.recipe-card__badge{display:inline-flex;align-items:center;align-self:flex-start;padding:4px 10px;border-radius:12px;font-size:12px;font-weight:600px;color:var(--text-main);background:#f1f0ef}.card-title{font-size:16px;font-weight:600;line-height:1.25;max-height:2.5em;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.card-macros{font-size:12px;color:var(--text-muted)}.card-bottom{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;flex-wrap:wrap}.card-bottom-locked{justify-content:flex-end}.card-servings{display:flex;flex-direction:column;gap:4px;min-width:150px}.recipe-card__servings{display:flex;align-items:center;gap:8px;padding-top:4px;padding-bottom:4px}.recipe-card__servings select{font-size:13px;padding:4px 28px 4px 10px;height:28px;border-radius:8px;border:1px solid var(--border-soft);color:var(--text-main);appearance:none;background-color:var(--card-white);background-image:url("data:image/svg+xml,%3Csvg width='10' height='6' viewBox='0 0 10 6' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%236B7280' stroke-width='1.6' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;background-size:10px 6px}.servings-label{font-size:14px;font-weight:500;color:var(--text-main)}.portion-label{font-size:12px;color:var(--text-muted);font-weight:600}.card-servings-static{font-size:14px;font-weight:600;color:var(--text-main)}.card-bottom-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.card-refresh-btn{width:32px;height:32px;border-radius:50%;border:none;background:var(--card-soft);color:var(--accent-main);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 3px 8px #0f172a2e;transition:background .18s ease,transform .18s ease}.card-refresh-btn:hover{background:var(--accent-peach);transform:translateY(-1px)}.card-refresh-btn svg{width:16px;height:16px}.card-remove-btn{position:absolute;top:10px;right:10px;border:none;background:#ffffffd9;border-radius:50%;width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 3px 8px #0f172a2e;transition:background .2s ease,transform .2s ease;z-index:20;color:var(--accent-main)}.card-remove-icon{width:16px;height:16px;stroke:currentColor}.card-remove-btn:hover{background:var(--accent-peach);transform:translateY(-1px)}.favorite-toggle{position:absolute;top:12px;left:12px;width:34px;height:34px;border-radius:50%;border:none;background:#ffffffeb;color:var(--text-muted);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 3px 8px #0f172a2e;transition:background .18s ease,transform .18s ease,color .18s ease;z-index:15}.favorite-toggle svg{width:18px;height:18px;pointer-events:none}.favorite-toggle:hover{transform:translateY(-1px)}.favorite-toggle.favorite-active{background:#ffe5eb;color:#c5395d}.favorite-toggle.favorite-active path{fill:currentColor;stroke:currentColor}.favorite-toggle--right{left:auto;right:12px}.favorite-toggle--card{top:14px}.favorite-toggle--hero{top:18px;background:#f7e8d8e6}.favorite-toggle--small{width:30px;height:30px}.shopping-settings-card{margin:16px 0;padding:16px 20px;border-radius:24px;background:var(--card-white);box-shadow:0 6px 18px #0000000f;display:flex;flex-direction:column;gap:16px}.shopping-source-main{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}.shopping-source-left{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.shopping-settings-label{font-size:14px;font-weight:600;color:#3b322c;margin:0}.shopping-source-right{display:flex;flex-direction:column;gap:4px;min-width:260px;flex:1 1 260px}.shopping-source-right-label{font-size:13px;font-weight:500;color:#6b6259;display:block;margin:4px 0 2px}.shopping-source-right-row{display:flex;align-items:flex-end;gap:8px;flex-wrap:wrap}.shopping-weekly-date-field{display:flex;align-items:center;gap:8px;min-width:200px;flex-wrap:wrap}.shopping-weekly-select,.shopping-weekly-date{height:36px;padding:0 12px;border-radius:999px;border:1px solid #e3ded8;background:#fff;font-size:13px;color:#3b322c;margin-top:5px;font-family:inherit;line-height:1}.shopping-weekly-select{min-width:200px}.shopping-weekly-date{min-width:170px}.shopping-weekly-select:focus,.shopping-weekly-date:focus{outline:none;border-color:var(--zdk-dark);box-shadow:0 0 0 2px #db69262e}.shopping-field{display:flex;flex-direction:column;gap:6px}.shopping-field-label{font-size:12px;font-weight:600;color:var(--text-main)}.shopping-segmented{display:inline-flex;flex-wrap:wrap;align-items:center;gap:4px;padding:4px 6px;border-radius:999px;background:var(--card-soft);border:1px solid var(--border-soft);flex:0 0 auto;max-width:100%}.shopping-segmented-btn{border:none;background:transparent;padding:6px 14px;min-height:32px;border-radius:999px;font-size:13px;color:var(--text-muted);cursor:pointer;transition:background .18s ease,color .18s ease,box-shadow .18s ease}.shopping-segmented-btn:hover{color:var(--text-main)}.shopping-segmented-btn-active{background:#fff;color:var(--text-main);font-weight:600;box-shadow:0 3px 8px #0f172a1f}.shopping-field-control{display:inline-flex}.shopping-field-control select,.shopping-field input[type=date],.shopping-source-date input[type=date]{border-radius:18px;border:1px solid var(--border-soft);padding:8px 12px;font-size:13px;background:#fff;color:var(--text-main);min-width:180px}.shopping-field-hint{font-size:12px;color:var(--text-subtle)}.shopping-info-box{display:flex;align-items:center;gap:8px;border-radius:18px;padding:10px 14px;background:#fff8f1;color:#7a6757;border:1px solid #f3e2d2;font-size:12px;box-shadow:0 4px 12px #0000000a}.shopping-info-icon{font-size:14px}.shopping-days-card{margin:0 0 16px;padding:14px 20px 12px;border-radius:24px;background:var(--card-white);box-shadow:0 4px 14px #0000000d;display:flex;flex-direction:column;gap:10px}.shopping-days-label{font-size:13px;font-weight:600;color:var(--text-main)}.shopping-day-toolbar{border:1px solid var(--border-soft);border-radius:18px;padding:8px 10px;background:#fff}.shopping-export-buttons{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.shopping-export-button{padding:6px 14px;border-radius:999px;border:1px solid #d4d4d4;background:#f3f3f3;color:#555;font-size:13px;font-weight:500;cursor:pointer}.shopping-export-button:hover{background:#e8e8e8}.shopping-export-hint{margin-top:8px;margin-bottom:8px;font-size:13px;color:#8a8a8a}.shopping-wrap{padding:16px 20px 18px;border-radius:24px;background:var(--card-white);box-shadow:0 6px 18px #0000000f}.shopping-box-divider{width:100%;height:1px;background:#3f2e2314;margin:8px 0 14px}.shopping-box-head{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:18px;margin-bottom:16px}.shopping-box-left{display:flex;align-items:center;gap:18px}.shopping-box-title{font-weight:600;font-size:16px;color:var(--text-main)}.day-checkbox-grid{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.day-checkbox{display:inline-flex;align-items:center;gap:6px;padding:3px 9px;border-radius:999px;background:#fff;font-size:12px;color:var(--text-muted);border:1px solid var(--border-soft);transition:background .18s ease,border-color .18s ease,color .18s ease;cursor:pointer;-webkit-user-select:none;user-select:none}.day-checkbox-all{font-size:11px;padding:3px 8px;opacity:.9}.day-checkbox input{accent-color:var(--accent-main)}.day-checkbox-active{background:var(--zdk-dark);color:#fff;border-color:var(--zdk-dark)}.day-checkbox input:disabled+span{opacity:.5}.people-stepper{display:flex;align-items:center;gap:10px;padding:6px 12px;border-radius:999px;background:var(--card-soft);border:1px solid var(--border-soft)}.people-stepper-label{font-size:12px;color:var(--text-muted);font-weight:500}.people-stepper-controls{display:inline-flex;align-items:center;gap:8px}.people-stepper-btn{width:26px;height:26px;border-radius:50%;border:none;background:var(--zdk-dark);color:#fff;font-size:16px;line-height:1;cursor:pointer;box-shadow:0 3px 8px #0f172a33;transition:opacity .18s ease,transform .18s ease}.people-stepper-btn:disabled{opacity:.4;cursor:default;box-shadow:none}.people-stepper-btn:not(:disabled):hover{background:var(--zdk-dark-hover);transform:translateY(-1px)}.people-stepper-btn:not(:disabled):active{background:var(--zdk-dark-active)}.people-stepper-value{font-weight:600;color:var(--text-main);min-width:32px;text-align:center}.shopping-list{margin-top:4px;display:flex;flex-direction:column;gap:4px;max-height:420px;overflow-y:auto}.shopping-item{display:flex;align-items:flex-start;gap:6px;font-size:12px;color:var(--text-main)}.shopping-empty{font-size:11px;color:#b8aa9f;text-align:left}.loading-wrap,.error-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center}.loading-pill{padding:10px 18px;border-radius:999px;background:var(--card-white);box-shadow:0 4px 10px #0000001a;font-size:13px}.error-text{color:var(--status-critical-text)}@media(max-width:1200px){.app-root{padding:24px 24px 28px}.meals{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:900px){.top-grid{flex-direction:column;align-items:stretch;gap:10px}.day-summary{max-width:100%}.meals{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.app-root{padding:18px 14px}.brand-wrap,.main-tabs-wrap{margin-bottom:8px}.top-grid{margin-top:4px;margin-bottom:10px;gap:8px}.group-tabs{flex-wrap:wrap}.meals{grid-template-columns:1fr}}.recipe-modal-overlay{position:fixed;inset:0;background:#0000003d;display:flex;justify-content:center;align-items:flex-start;padding:40px 24px;z-index:999}.recipe-modal{max-width:1080px;width:100%;max-height:90vh;overflow-y:auto;background:var(--card-softer);border-radius:32px;padding:24px 28px;box-shadow:0 18px 40px #0000002e}.recipe-modal-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px}.recipe-modal-pill{display:inline-flex;padding:4px 10px;border-radius:999px;font-size:11px;background:var(--accent-peach);color:var(--text-on-peach);margin-bottom:4px}.recipe-modal-title{margin:0;font-size:22px;font-weight:600;color:var(--text-main)}.recipe-modal-close{border:none;background:var(--accent-peach);border-radius:999px;width:28px;height:28px;font-size:16px;cursor:pointer;color:var(--text-on-peach)}.recipe-modal-close:hover{background:var(--accent-peach-hover)}.recipe-modal-close:active{background:var(--accent-peach-active)}.recipe-modal-macros{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.macro-pill{padding:6px 10px;border-radius:16px;background:var(--card-white);box-shadow:0 2px 6px #0000000a;min-width:90px}.macro-label{font-size:10px;color:var(--text-muted)}.macro-value{font-size:13px;font-weight:600;color:var(--text-main)}.recipe-modal-body{display:grid;grid-template-columns:1.2fr 1.5fr;gap:24px;align-items:flex-start}.recipe-section-title{margin:0 0 8px;font-size:14px;font-weight:600;color:var(--text-main)}.recipe-ingredients-list,.recipe-steps-list{margin:0;padding-left:18px;font-size:13px;color:var(--text-main)}.recipe-empty{font-size:12px;color:var(--text-subtle)}.recipe-modal-image-wrap{grid-column:1 / -1;margin-top:12px;display:flex;justify-content:center}.recipe-modal-image{max-width:100%;border-radius:24px;object-fit:cover}/.filter-panel{margin-top:16px;padding:12px 16px;border-radius:24px;background:#fff;box-shadow:0 8px 24px #00000008}.filter-panel .filter-header{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:4px}.filter-panel .filter-title-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;flex:1 1 auto}.filter-panel .filter-label{font-size:14px;font-weight:600;color:var(--text-main);margin:0}.filter-panel .filter-chips{display:flex;flex-wrap:wrap;gap:6px}.filter-panel .filter-header-right{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-wrap:wrap}.filter-panel .filter-header-slot{display:flex;align-items:center}.filter-panel .filter-header-right .week-bar-wrapper,.filter-panel .filter-header-right .week-bar{margin:0}.filter-panel .chip-btn{display:inline-flex!important;align-items:center;justify-content:center;border:0px solid var(--border-soft)!important;padding:4px 10px;border-radius:999px;font-size:12px;cursor:pointer;background:#f4efe9!important;color:var(--text-main)!important;box-shadow:none;white-space:nowrap;transition:background .15s ease,color .15s ease,border-color .15s ease,box-shadow .15s ease}.filter-panel .chip-btn:disabled,.filter-panel .chip-btn-disabled{background:#f0efee!important;border:1px dashed rgba(58,58,58,.15)!important;color:#3a3a3a8c!important;cursor:not-allowed;box-shadow:none}.filter-panel .chip-btn:hover{background:#ece5dd!important;color:var(--text-main)!important}.filter-panel .chip-btn:active{background:#e3d9cf!important;color:var(--text-main)!important}.filter-panel .chip-btn.selected,.filter-panel .chip-btn-active{background:var(--accent-peach)!important;border-color:transparent!important;color:var(--text-on-peach)!important;font-weight:600;box-shadow:0 3px 8px #0000000f}.filter-panel .chip-btn.selected:hover,.filter-panel .chip-btn-active:hover{background:var(--accent-peach)!important;color:var(--text-on-peach)!important}.filter-panel .chip-btn.selected:active,.filter-panel .chip-btn-active:active{background:var(--accent-peach-active)!important;color:var(--text-on-peach)!important}.filter-panel .chip-btn[aria-controls=db-advanced-filters]{background:#fde9cc!important;color:var(--text-main)!important}.filter-panel .chip-btn.chip-btn-active[aria-controls=db-advanced-filters]{background:#fad6c6!important;color:var(--text-main)!important}.filter-panel .chip-label-text{display:inline-flex;align-items:center;font-weight:500}.filter-panel .chip-soon-label{margin-left:6px;padding:1px 6px;border-radius:999px;background:#3a3a3a1f;color:#3a3a3aa6;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.4px}.filter-panel .chip-clear{display:inline-flex!important;align-items:center;justify-content:center;background:transparent!important;border:1px solid var(--border-soft)!important;color:var(--accent-main)!important;padding:4px 10px;font-size:12px;font-weight:500;white-space:nowrap}.filter-panel .chip-clear:hover{background:#f4efe9!important}.plan-header{display:flex;flex-direction:column;align-items:flex-end;gap:8px}.plan-header-top{display:flex;align-items:center;gap:16px}.shopping-banner{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 24px;margin:28px 0 20px;border-radius:18px;border:1px solid #f3d7c5;background:linear-gradient(135deg,#fff9f4,#fff3eb);box-shadow:0 12px 30px #4d332014}.shopping-banner-copy{display:flex;flex-direction:column;gap:4px;color:#5b4a3a}.shopping-banner-title{font-size:16px;font-weight:600;margin:0}.shopping-banner-text{font-size:14px;margin:0;color:#7c6a58}.shopping-banner-button{padding:10px 18px;border-radius:999px;border:none;background:#f0a77b;color:#fff;font-size:14px;font-weight:600;cursor:pointer;box-shadow:0 10px 20px #f0a77b59;transition:transform .15s ease,box-shadow .15s ease;white-space:nowrap}.shopping-banner-button:hover{transform:translateY(-1px);box-shadow:0 14px 28px #f0a77b73}.shopping-banner-button:active{transform:translateY(0);box-shadow:0 6px 18px #f0a77b4d}@media(max-width:900px){.shopping-banner{flex-direction:column;align-items:flex-start}.shopping-banner-button{width:100%;text-align:center}}.meals-dropdown{appearance:none;-webkit-appearance:none;-moz-appearance:none;padding:4px 18px;border-radius:999px;border:1px solid var(--border-soft);background:var(--card-softer);color:var(--text-main);font-size:13px;cursor:pointer;line-height:1.3;box-shadow:0 3px 8px #0f172a1f}.add-btn{width:32px;height:32px;border-radius:50%;border:none;background:var(--zdk-dark);color:#fff;font-size:18px;font-weight:500;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 2px 6px #0f172a2e;transition:background .16s ease,box-shadow .16s ease,transform .16s ease}.add-btn:hover{background:var(--zdk-dark-hover);box-shadow:0 4px 10px #0f172a40;transform:translateY(-1px)}.add-btn:active{transform:translateY(0);box-shadow:0 2px 6px #0f172a2e;background:var(--zdk-dark-active)}.chip-btn{display:flex;align-items:center;justify-content:center;height:32px;padding:0 14px;border-radius:16px;border:1px solid transparent;cursor:pointer;font-size:13px}.chip-btn.primary{background-color:var(--zdk-dark);color:#fff}.chip-btn.primary:hover{background-color:var(--zdk-dark-hover)}.chip-btn.primary:active{background-color:var(--zdk-dark-active)}.welcome-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#fef6f0,#fde2cf);padding:24px}.welcome-card{width:100%;max-width:420px;background:#fff;border-radius:16px;box-shadow:0 18px 40px #e2905440;padding:32px;text-align:center}.welcome-card h1{margin-bottom:8px;color:#b35a2e}.welcome-subtitle{color:#8a6f58;margin-bottom:24px}.welcome-toggle{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:24px}.welcome-toggle button{border:1px solid #f0c6a7;background:transparent;border-radius:999px;padding:10px;font-weight:600;cursor:pointer;color:#c07845;transition:all .2s ease}.welcome-toggle button.active{background:#e39c5c;color:#fff;border-color:#e39c5c}.welcome-form{display:flex;flex-direction:column;gap:16px;text-align:left}.welcome-form label{font-size:14px;color:#7b6554;display:flex;flex-direction:column;gap:6px}.welcome-form input{border-radius:10px;border:1px solid #ead7cb;padding:10px 12px;font-size:15px}.welcome-form button[type=submit]{border:none;border-radius:999px;padding:12px;font-size:16px;font-weight:600;background:#c96d2d;color:#fff;margin-top:8px;cursor:pointer;transition:background .2s ease,transform .2s ease}.welcome-form button[type=submit]:hover:enabled{background:#e47b32;transform:translateY(-1px)}.welcome-form button[type=submit]:disabled{opacity:.65;cursor:not-allowed}.welcome-error{color:#c62828;font-size:14px}.welcome-info{color:#2e7d32;font-size:14px}.welcome-herohero-note{margin-top:32px;padding-top:24px;border-top:1px solid #f0e0d5;font-size:14px;color:#7b6554;line-height:1.5}.herohero-gate{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#fff3e9,#ffe4d0);padding:24px}.herohero-card{max-width:520px;width:100%;background:#fff;border-radius:16px;box-shadow:0 18px 40px #bc622f33;padding:32px;text-align:center}.herohero-card h1{margin-bottom:12px;color:#b35a2e}.herohero-card p{color:#7b6554}.herohero-card a{color:#c96d2d;font-weight:600}.herohero-actions{margin-top:24px;display:flex;flex-wrap:wrap;gap:12px;justify-content:center}.herohero-btn{border:none;border-radius:999px;padding:12px 20px;font-size:15px;cursor:pointer}.herohero-btn.primary{background:#c96d2d;color:#fff}.herohero-btn.secondary{background:#f6ede5;color:#7b6554}.herohero-btn.ghost{background:transparent;color:#b35a2e;border:1px solid rgba(179,90,46,.35)}.herohero-btn:disabled{opacity:.6;cursor:not-allowed}.herohero-error{margin-top:12px;color:#c62828}.footer-legal{margin-top:48px;padding:16px 0 32px;text-align:center;font-size:14px;line-height:1.5;color:#a6a6a6;max-width:1000px;margin-left:auto;margin-right:auto;opacity:.8}.footer-legal p{margin:0}.weekly-plans{max-width:1120px;margin:0 auto;padding:0 24px 40px}.weekly-plans-grid{display:flex;flex-direction:column;gap:20px;margin-top:24px}.weekly-group-chips{margin-top:20px;display:flex;gap:10px;flex-wrap:wrap}.weekly-group-chip{border:1px solid #EEEDEB;background:#eeedeb;color:#5b4637;border-radius:999px;padding:6px 14px;font-size:13px;cursor:pointer;transition:background .2s ease,color .2s ease,border-color .2s ease}.weekly-group-chip--active{background:#3f2e23;color:#fff;border-color:#3f2e23;box-shadow:0 4px 12px #3f2e2340}.weekly-plan-empty{margin-top:18px;padding:14px 16px;border-radius:18px;background:#eeedeb;color:#7a6757;font-size:14px;border:1px dashed #EEEDEB}.weekly-plan-detail{background:#f8f8f8;border-radius:28px;padding:22px 22px 26px;box-shadow:0 12px 32px #3f2e2314;display:flex;flex-direction:column;gap:20px}.weekly-plan-detail-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}.weekly-plan-detail-kicker{font-size:13px;text-transform:uppercase;letter-spacing:.08em;color:#a58a76;margin:0 0 6px}.weekly-plan-detail-title{margin:0;font-size:20px;font-weight:600;color:#3f2e23}.weekly-plan-detail-sub{margin:4px 0 0;font-size:14px;color:#7a6757;white-space:nowrap}.weekly-plan-lock-pill{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;background:#eeedeb;color:#5b4637;font-size:13px;font-weight:600}.weekly-plan-detail .meals{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.weekly-plan-prep-note{background:#eeedeb;border-radius:22px;padding:18px 20px;border:1px solid #EEEDEB;color:#4c3a30;box-shadow:inset 0 1px #fff6}.weekly-plan-prep-label{font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:#a25b2a;font-weight:600}.weekly-plan-prep-text{margin:8px 0 0;font-size:14px;line-height:1.5;color:inherit}.weekly-plan-card{background:#fff;border-radius:24px;padding:18px 18px 20px;box-shadow:0 10px 30px #0f172a14;display:flex;flex-direction:column;gap:12px}.weekly-plan-card-top{display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;align-items:flex-start}.weekly-plan-card-info{flex:1;min-width:220px;display:flex;flex-direction:column;gap:6px}.weekly-week-picker{margin-top:-35px;margin-bottom:20px;margin-left:auto;background:#e9e8e8;border-radius:24px;padding:10px 14px;display:flex;flex-direction:column;gap:6px;width:fit-content}.week-picker-control{display:flex;align-items:center;gap:8px}.week-nav-btn{width:32px;height:32px;border-radius:999px;border:none;background:#eeedeb;color:#4b3729;font-size:18px;cursor:pointer;transition:background .2s ease,transform .2s ease}.week-nav-btn:disabled{opacity:.4;cursor:default}.week-nav-btn:not(:disabled):hover{background:#eeedeb;transform:translateY(-1px)}.week-picker-select-wrap{min-width:220px;background:#fff;border-radius:999px;padding:4px 12px;box-shadow:inset 0 0 0 1px #0000000f}.week-picker-select-wrap select{width:100%;border:none;background:transparent;font-size:13px;color:#3f2e23;appearance:none;padding-right:24px;background-image:url("data:image/svg+xml,%3Csvg width='12' height='7' viewBox='0 0 12 7' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%235b4637' stroke-width='1.4' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 4px center}.week-select-label{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#9c8f85}.weekly-plan-title{font-size:20px;font-weight:600;margin:0;color:#3f2e23}.weekly-plan-subtitle{font-size:14px;margin:0;color:#7a6757}.weekly-plan-badge{align-self:flex-start;font-size:11px;text-transform:uppercase;letter-spacing:.08em;padding:4px 10px;border-radius:999px;background:#eeedeb;color:#a25b2a}.weekly-plan-meta{display:flex;flex-wrap:wrap;gap:6px}.weekly-plan-chip{font-size:12px;padding:4px 10px;border-radius:999px;background:#eeedeb;color:#5b4637}.weekly-plan-chip.soft{background:#eeedeb;color:#7a6757}.weekly-plan-footer{margin-top:6px;display:flex;gap:8px}.weekly-plan-primary{flex:1;border:none;border-radius:999px;padding:8px 14px;font-size:14px;font-weight:500;background:#3f2e23;color:#fff;cursor:pointer}.weekly-plan-secondary{border-radius:999px;padding:8px 12px;font-size:13px;border:none;background:#eeedeb;color:#3f2e23;cursor:pointer}.weekly-plan-days{margin-top:20px;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}.weekly-plan-day{background:#fff;border-radius:18px;padding:12px 14px;box-shadow:0 8px 20px #0f172a0f}.weekly-plan-day-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:6px}.weekly-plan-day-label{font-size:14px;font-weight:600;color:#3f2e23}.weekly-plan-day-note{font-size:11px;color:#9c8f85}.weekly-plan-day-meals{list-style:none;padding:0;margin:0;font-size:13px;color:#6d5a4a}.weekly-day-switch{display:flex;gap:8px;overflow-x:auto;padding-bottom:6px}.weekly-day-btn{border:none;border-radius:999px;padding:6px 10px;font-size:12px;background:#eeedeb;color:#6d5a4a;cursor:pointer;transition:background .2s ease,color .2s ease}.weekly-day-btn.active{background:#3f2e23;color:#fff;box-shadow:0 4px 10px #3f2e2340}.weekly-day-btn:disabled{opacity:.35;cursor:default}.recipe-detail-overlay{position:fixed;inset:0;background:#30201459;display:flex;justify-content:center;align-items:flex-start;overflow-y:auto;padding:40px 16px;z-index:1000}.recipe-page{width:min(1100px,100%);margin:0 auto 32px;background:#fff;border-radius:28px;padding:40px 48px 48px;box-shadow:0 30px 70px #00000029;position:relative;font-family:Sora,Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#3b2a1f}.recipe-close{position:absolute;top:24px;right:24px;width:36px;height:36px;border-radius:50%;border:none;background:#f7e8d8;box-shadow:0 6px 20px #0000001f;font-size:18px;cursor:pointer;color:#4a3426}.recipe-hero-shell{position:relative;margin-bottom:24px;border-radius:18px;overflow:hidden}.recipe-hero{width:100%;height:260px;display:block;object-fit:cover}.recipe-hero-placeholder{background:#f4e5d5;min-height:260px;display:flex;align-items:center;justify-content:center;color:#bbb}.recipe-hero-overlay{position:absolute;inset:0;display:flex;align-items:flex-end;padding:24px 24px 26px;background:linear-gradient(to top,#0000008c,#00000026 55%,#0000)}.recipe-title-block{display:flex;flex-direction:column;gap:12px;width:100%}.recipe-title{font-size:clamp(26px,4vw,38px);font-weight:600;margin:0;padding-right:56px;line-height:48px;color:#fff;text-shadow:0 2px 8px rgba(0,0,0,.55)}.portion-mode-toggle{display:inline-flex;align-items:center;gap:4px;padding:4px;border-radius:999px;background:#ffffff38;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);width:fit-content}.portion-mode-toggle__option{border:none;background:transparent;color:#fff;font-weight:600;font-size:13px;padding:6px 14px;border-radius:999px;cursor:pointer;opacity:.85;transition:background .2s ease,color .2s ease,opacity .2s ease}.portion-mode-toggle__option.is-active{background:#fff;color:#4a3426;opacity:1;box-shadow:0 6px 16px #0000002e}.portion-mode-toggle__option:focus-visible{outline:2px solid #f4a261;outline-offset:2px}.recipe-meta-row{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:20px}.meta-pill{padding:6px 14px;background:#f5efe8;border-radius:999px;box-shadow:0 2px 6px #0000000f;font-size:14px;display:inline-flex;align-items:center;gap:6px;color:#4b3526}.meta-pill-icon{font-size:14px}.recipe-tags-row{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:24px}.tag-pill{padding:4px 12px;font-size:13px;border-radius:999px;background:#f5efe8;color:#5a4332;font-weight:400;white-space:nowrap;box-shadow:0 1px 3px #0000000a;border:none}.tag-pill[role=button]{cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}.tag-pill[role=button]:hover{transform:translateY(-1px);box-shadow:0 4px 12px #3640a338}.tag-pill[role=button]:focus-visible{outline:2px solid #6e78ff;outline-offset:2px}.recipe-layout{display:grid;grid-template-columns:1.6fr 1fr;gap:32px;margin-top:32px}.recipe-left{display:flex;flex-direction:column;gap:24px}.recipe-description{font-size:15px;line-height:1.6;color:#3f2d21;margin:8px 0 18px}.howto-title{font-size:22px;font-weight:600;margin:0;color:#3b2a1f}.howto-steps{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:12px}.howto-steps li{display:flex;gap:12px;align-items:flex-start;background:#fff;border-radius:16px;padding:18px 20px;box-shadow:0 6px 18px #0000000d}.step-number{width:32px;height:32px;border-radius:50%;border:none;font-weight:600;font-size:15px;display:flex;align-items:center;justify-content:center;color:#4a3426;background:#f6e7d3;flex-shrink:0}.step-text{font-size:15px;line-height:1.6;color:#3f2d21}.info-card{margin-top:0;padding:14px 16px;border-radius:14px;background:#f5efe8;color:#3f2d21;font-size:14px}.info-card h3{margin-top:0;margin-bottom:6px;font-size:15px;font-weight:600;color:#3b2a1f}.info-card p{margin:0;font-size:15px;line-height:1.6;color:#3b3b3b}.recipe-faq-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}.recipe-faq-item{padding:6px 0;border-bottom:1px solid rgba(0,0,0,.05)}.recipe-faq-item:last-child{border-bottom:none}.recipe-faq-question{margin:0;font-weight:600;color:#2f200f}.recipe-faq-answer{margin:4px 0 0;color:#1e160fcc;line-height:1.5}.recipe-right{display:flex;flex-direction:column;gap:20px}.ingredients-box{background:#f5efe8;padding:24px;border-radius:18px;box-shadow:0 6px 20px #0000000f;border:none}.ingredients-box h3{margin-top:0;margin-bottom:12px;font-size:18px;font-weight:600;color:#3b2a1f}.ingredients-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}.ingredients-box ul{margin:16px 0 0 18px;padding:0;color:#4a321c;line-height:1.6;font-size:15px}.ingredients-box ul li{color:#3f2d21;margin-bottom:4px}.portion-select{border:none;background:transparent;font-size:15px;font-weight:600;color:#5a4332;appearance:none;padding-right:8px;cursor:pointer}.portion-select:focus{outline:none}.portion-select:focus-visible{outline:2px solid #f4a261;outline-offset:2px;border-radius:6px}.portion-counter{display:inline-flex;align-items:center;gap:10px;padding:6px 10px;border-radius:12px;background:#ffffffe6;box-shadow:inset 0 0 0 1px #0000000f;margin-left:auto}.portion-counter__label{font-size:14px;font-weight:600;color:#3b2a1f}.portion-counter__actions{display:inline-flex;align-items:center;gap:6px}.portion-counter__btn{width:32px;height:32px;border-radius:8px;border:none;background:#f5efe8;color:#4a3426;font-size:18px;font-weight:600;cursor:pointer;transition:background .2s ease,box-shadow .2s ease,transform .15s ease}.portion-counter__btn:hover:not(:disabled){background:#f0e0ce;box-shadow:0 4px 10px #00000014;transform:translateY(-1px)}.portion-counter__btn:active:not(:disabled){transform:translateY(0);box-shadow:none}.portion-counter__btn:disabled{opacity:.4;cursor:not-allowed;box-shadow:none}.batch-portion-panel{display:flex;flex-direction:column;gap:4px;padding:8px 12px;border-radius:12px;background:#ffffffe6;box-shadow:inset 0 0 0 1px #0000000f;margin-left:auto;min-width:220px}.batch-portion-row{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%}.batch-portion-label{font-size:14px;font-weight:600;color:#3b2a1f}.batch-portion-controls{display:inline-flex;align-items:center;gap:8px}.batch-portion-value{font-weight:600;color:#4a3426;min-width:80px;text-align:center}.batch-portion-summary{font-size:13px;font-weight:600;color:#6a4c37}.batch-portion-row--summary{justify-content:flex-end}.batch-portion-row--controls{flex-wrap:wrap}.portion-note{font-size:13px;color:#7a614a;margin:12px 0 0}.recipe-right-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px;padding:0 4px}.empty-text{font-size:15px;color:#8a8a8a;margin:0}@media(max-width:900px){.recipe-page{padding:32px 28px 40px}}@media(max-width:820px){.recipe-layout{grid-template-columns:1fr}.recipe-right{margin-top:32px}}@media(max-width:560px){.recipe-page{padding:28px 20px 36px}.recipe-close{top:16px;right:16px}.ingredients-box{padding:20px}}.landing-detail-page{min-height:100vh;background:#f5f5f7;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,sans-serif;color:#111827}.landing-detail-hero{max-width:900px;margin:0 auto;padding:4rem 1.5rem 2rem;text-align:center}.landing-detail-badge{display:inline-flex;align-items:center;padding:.1rem .95rem;border-radius:999px;font-size:.82rem;font-weight:600;border:1px solid currentColor}.landing-detail-badge-free{color:#047857;background:#dcfce7cc}.landing-detail-badge-locked{color:#9a3412;background:#fed7aacc}.landing-detail-hero h1{font-family:Bricolage Grotesque,Inter,sans-serif;font-size:clamp(2rem,6vw,3.2rem);margin:1rem 0 .5rem}.landing-detail-lead{max-width:640px;margin:0 auto 1.5rem;color:#4b5563;line-height:1.6}.landing-detail-meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.75rem;margin-bottom:1.5rem}.landing-detail-meta div{border:1px solid #e5e7eb;border-radius:1rem;padding:.9rem;display:flex;flex-direction:column;gap:.1rem;background:#fff}.landing-detail-meta span{font-size:.78rem;color:#9ca3af}.landing-detail-meta strong{font-size:1rem}.landing-detail-actions{display:flex;justify-content:center;gap:1rem;flex-wrap:wrap}.landing-detail-ghost,.landing-detail-primary{padding:.75rem 1.6rem;border-radius:999px;font-weight:600;font-size:.95rem;text-decoration:none}.landing-detail-ghost{border:1px solid #e5e7eb;color:#111827;background:#fff}.landing-detail-primary{background:#111827;color:#fff}.landing-detail-section{max-width:960px;margin:0 auto 4rem;padding:0 1.5rem 3rem}.landing-detail-image{border-radius:1.5rem;overflow:hidden;margin-bottom:2rem;border:1px solid #e5e7eb;box-shadow:0 24px 60px #0f172a1a}.landing-detail-image img{width:100%;height:clamp(220px,40vw,420px);object-fit:cover;display:block}.landing-detail-columns{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:2rem}.landing-detail-columns h2{margin-top:0}.landing-detail-columns ul,.landing-detail-columns ol{margin:0;padding-left:1.25rem;line-height:1.7;color:#374151;background:#fff;border-radius:1rem;border:1px solid #e5e7eb;padding:1.1rem 1.25rem}.landing-detail-preview{background:#fff;border-radius:1.5rem;border:1px solid #e5e7eb;padding:2rem;display:flex;flex-direction:column;gap:1rem;line-height:1.7;color:#374151;box-shadow:0 18px 40px #0f172a14}.landing-detail-note{font-size:.9rem;color:#6b7280;margin:0}.landing-detail-page .landing-detail-primary{display:inline-flex;justify-content:center}.landing-detail-card{max-width:480px;margin:8rem auto;padding:2rem;background:#fff;border-radius:1.5rem;border:1px solid #e5e7eb;text-align:center}.landing-detail-link{display:inline-flex;margin-top:1rem;color:#111827;text-decoration:underline}.landing-detail-empty{display:flex;align-items:center;justify-content:center;min-height:80vh;padding:1.5rem}@media(max-width:640px){.landing-detail-hero{padding-top:3rem}.landing-detail-columns ul,.landing-detail-columns ol{padding-left:1rem}}
