.input{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);width:100%;min-height:44px;color:var(--text);padding:0 14px}.input:focus-visible{outline:2px solid var(--accent);outline-offset:0;border-color:var(--accent)}.input--short{max-width:120px}.field__hint{color:var(--text-3);font-size:.82rem}.password-input{position:relative}.password-input .input{padding-right:96px}.password-input .link-button{font-size:.85rem;position:absolute;top:50%;right:14px;transform:translateY(-50%)}.button.button:disabled{opacity:.6;cursor:default;filter:none}.button.button--small{min-height:38px;padding:0 16px;font-size:.9rem}.button.button--secondary{background:var(--surface-2);color:var(--text)}.button.button--danger{color:#fff;background:#c4283d}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .button.button--danger{background:var(--heart);color:#1a0508}}:root[data-theme=dark] .button.button--danger{background:var(--heart);color:#1a0508}.checkbox{align-items:center;gap:10px;font-weight:600;display:flex}.checkbox input{width:20px;height:20px;accent-color:var(--accent)}.form-error{border-radius:var(--radius-sm);background:color-mix(in srgb, var(--heart) 12%, transparent);color:var(--text);margin:0;padding:10px 14px;font-size:.9rem}.form-notice{color:var(--accent-text);align-items:flex-start;gap:8px;margin:0;font-size:.9rem;font-weight:600;display:flex}.form-notice svg{margin-top:3px}.pill{background:var(--accent-soft);color:var(--accent-text);vertical-align:2px;border-radius:999px;padding:1px 8px;font-size:.75rem;font-weight:700;display:inline-block}.auth{max-width:480px}.auth__card{gap:12px;padding:28px 24px;display:grid}.auth__logo{justify-self:start}.auth__intro{margin-bottom:4px}.auth__form{gap:14px;display:grid}.auth__submit{width:100%}.auth__or{text-align:center;color:var(--text-3);font-size:.85rem}.auth__links{gap:8px;margin-top:8px;font-size:.9rem;display:grid}.auth__links a{font-weight:600}.auth__badge{border-radius:var(--radius-sm);background:var(--accent-soft);color:var(--accent-text);padding:10px 14px;font-size:.9rem;font-weight:600}.account-grid{align-items:start;gap:16px;display:grid}@media (width>=900px){.account-grid{grid-template-columns:1fr 1fr}}.account-col{gap:16px;min-width:0;display:grid}.account-col>.card+.card{margin-top:0}.account .card h2{margin-bottom:12px}.account-intro{margin-bottom:12px;font-size:.92rem}.account-form{justify-items:start;gap:14px;display:grid}.account-form .field{width:100%}.account-row{flex-wrap:wrap;align-items:center;gap:10px 14px;display:flex}.account-row+.account-row{margin-top:14px}.account-danger h2{color:var(--heart)}.account-danger p{margin-bottom:12px}.sync-state{align-items:baseline;gap:10px;font-weight:600;display:flex}.sync-state__dot{background:var(--accent);border-radius:50%;flex:none;width:10px;height:10px}.sync-state--warn .sync-state__dot{background:var(--carbs)}.passkey-list,.admin-list{margin:0 0 14px;padding:0;list-style:none}.passkey,.admin-item{flex-wrap:wrap;align-items:center;gap:8px 12px;padding:12px 0;display:flex}.passkey+.passkey,.admin-item+.admin-item{border-top:1px solid var(--border)}.passkey__icon{background:var(--accent-soft);width:36px;height:36px;color:var(--accent-text);border-radius:10px;place-items:center;display:grid}.passkey__text,.admin-item__text{flex:180px;min-width:0;display:grid}.passkey__name,.admin-item__title{overflow-wrap:anywhere;font-weight:700}.passkey__meta,.admin-item__meta{color:var(--text-3);overflow-wrap:anywhere;font-size:.82rem}.passkey__actions,.admin-item__actions{flex-wrap:wrap;gap:6px 16px;font-size:.9rem;display:flex}.passkey__edit{flex-wrap:wrap;flex:220px;align-items:center;gap:8px;display:flex}.passkey__edit .input{flex:140px;width:auto}.admin-item .link-box{flex-basis:100%}.link-box{border-radius:var(--radius-sm);background:var(--accent-soft);gap:8px;margin-top:16px;padding:14px;display:grid}.link-box p{color:var(--accent-text);font-size:.9rem;font-weight:600}.link-box__url{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85rem}.link-box__actions{flex-wrap:wrap;gap:8px;display:flex}.gate{text-align:center;justify-items:center;gap:10px;padding:24px 8px;display:grid}.gate p{max-width:440px}.gate__icon{background:var(--accent-soft);width:56px;height:56px;color:var(--accent-text);border-radius:50%;place-items:center;font-size:1.6rem;display:grid}.gate__loading{text-align:center;padding:24px 0}.gate-sheet{gap:16px;padding:4px 20px 24px;display:grid}.gate-sheet__actions{flex-wrap:wrap;gap:10px;display:flex}.offline-banner{z-index:15;background:var(--carbs);color:#1a1209;text-align:center;padding:8px 16px;font-size:.88rem;font-weight:600;position:sticky;top:0}:root{--star:#c98200;--star-off:#848e87}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--star:#f7b733;--star-off:#6f7a72}}:root[data-theme=dark]{--star:#f7b733;--star-off:#6f7a72}.stars{align-items:center;gap:2px;display:inline-flex}.stars__star{width:44px;height:44px;color:var(--star-off);background:0 0;border:0;border-radius:999px;place-items:center;padding:0;font-size:1.6rem;transition:transform .12s;display:inline-grid}.stars__star.is-on{color:var(--star)}.stars__star.is-preview.is-on{opacity:.85}@media (hover:hover){.stars__star:hover{transform:scale(1.1)}}.stars__star:active{transform:scale(.92)}.stars--lg .stars__star{width:48px;height:48px;font-size:2rem}.rating-card .section-head{margin-bottom:6px}.rating-card__stars{margin:0 0 0 -6px}.rating-card__level{color:var(--text-2);font-size:.9rem;font-weight:700}.rating-card__notes{gap:6px;margin-top:16px;display:grid}.rating-card__label{color:var(--text-2);text-transform:uppercase;letter-spacing:.04em;font-size:.8rem;font-weight:700}.rating-card__textarea{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);width:100%;min-height:88px;color:var(--text);font:inherit;resize:vertical;padding:10px 12px;line-height:1.45}.rating-card__textarea::placeholder{color:var(--text-3)}.rating-card__textarea:focus{border-color:var(--accent);background:var(--surface);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.rating-card__status{min-height:1.25rem;color:var(--accent-text);align-items:center;gap:4px;font-size:.8rem;display:flex}.rating-badge{color:var(--text-2);align-items:center;gap:3px;font-weight:700;display:inline-flex}.rating-badge svg{color:var(--star)}@media (prefers-reduced-motion:reduce){.stars__star,.stars__star:hover,.stars__star:active{transform:none}}:root{--allergen-bg:#fff4e0;--allergen-fg:#7a4a00;--allergen-warn-bg:#fdecee;--allergen-warn-fg:#a3192d;--allergen-warn-border:#f2b8c0}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--allergen-bg:#3a2c12;--allergen-fg:#f5cf8a;--allergen-warn-bg:#3b1a20;--allergen-warn-fg:#ffb3bd;--allergen-warn-border:#6e2a35}}:root[data-theme=dark]{--allergen-bg:#3a2c12;--allergen-fg:#f5cf8a;--allergen-warn-bg:#3b1a20;--allergen-warn-fg:#ffb3bd;--allergen-warn-border:#6e2a35}.allergen-info{gap:6px;min-width:0;display:grid}.allergen-info--warn{border:1px solid var(--allergen-warn-border);border-radius:var(--radius-sm);background:var(--allergen-warn-bg);padding:10px 12px}.allergen-info__warning{color:var(--allergen-warn-fg);align-items:flex-start;gap:8px;font-size:.9rem;font-weight:700;display:flex}.allergen-info__line{flex-wrap:wrap;align-items:center;gap:6px;font-size:.85rem;display:flex}.allergen-info__label{color:var(--text-2);font-weight:700}.allergen-info__none{color:var(--accent-text);font-weight:700}.allergen-list{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.allergen{background:var(--allergen-bg);color:var(--allergen-fg);border-radius:999px;padding:2px 10px;font-size:.75rem;font-weight:700}.allergen--avoid{background:var(--allergen-warn-fg);color:var(--surface)}.allergen-info__foot{flex-wrap:wrap;align-items:baseline;gap:2px 10px;display:flex}.allergen-info__note{color:var(--text-3);flex:220px;font-size:.75rem}.allergen-info__details{color:var(--text-2);font-size:.8rem}.allergen-info__details[open]{flex-basis:100%}.allergen-info__details summary{cursor:pointer;color:var(--accent-text);min-height:24px;font-weight:700}.allergen-info__details dl{gap:2px;margin:4px 0 6px;display:grid}.allergen-info__details dl>div{flex-wrap:wrap;gap:0 6px;display:flex}.allergen-info__details dt{font-weight:700}.allergen-info__details dt:after{content:":"}.allergen-info__details dd{margin:0}.page.diary-page{max-width:760px}.diary-page .toast{text-align:center;width:max-content;max-width:calc(100vw - 32px)}.button.diary-btn--soft{background:var(--accent-soft);color:var(--accent-text)}.diary-added{min-height:44px;color:var(--accent-text);align-items:center;gap:6px;padding:0 4px;font-weight:700;display:inline-flex}.diary-added .link-button{margin-left:6px;text-decoration:underline}.date-nav{border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);grid-template-columns:40px minmax(0,1fr) 40px;align-items:center;gap:4px;margin-bottom:16px;padding:6px;display:grid}.date-nav__label{text-align:center;justify-items:center;min-width:0;display:grid}.date-nav__main{font-size:1.05rem;font-weight:750}.date-nav__sub{color:var(--text-3);font-size:.8rem}.date-nav__today{grid-column:1/-1;justify-self:center;margin-bottom:4px}.meter{--tone:var(--accent);background:color-mix(in srgb, var(--tone) 18%, var(--surface));border-radius:4px;height:8px;overflow:hidden}.meter--big{border-radius:7px;height:14px;margin:12px 0 4px}.meter__fill{border-radius:inherit;background:var(--tone);height:100%;transition:width .25s}.diary-summary__top{justify-content:space-between;align-items:flex-end;gap:12px;display:flex}.diary-summary__label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-3);font-size:.75rem;font-weight:700;display:block}.diary-summary__eaten{min-width:0;display:grid}.diary-summary__kcal{font-size:2.6rem;font-weight:800;line-height:1.05}.diary-summary__left{text-align:right;justify-items:end;display:grid}.diary-summary__left-value{color:var(--accent-text);font-size:1.5rem;font-weight:800;line-height:1.1}.diary-summary__left.is-over .diary-summary__left-value,.diary-summary__left.is-over .diary-summary__label{color:var(--heart)}.diary-macros{gap:12px;margin:16px 0 0;padding:0;list-style:none;display:grid}.diary-macro__head{justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:4px;font-size:.9rem;display:flex}.diary-macro__name{color:var(--text-2);font-weight:600}.diary-macro__value{font-variant-numeric:tabular-nums;color:var(--text-2);white-space:nowrap}.diary-macro__value strong{color:var(--text)}@media (width>=600px){.diary-macros{grid-template-columns:repeat(3,1fr);gap:16px}}.diary-prompt{border-radius:var(--radius-sm);background:var(--accent-soft);grid-template-columns:40px 1fr;gap:12px;margin-top:16px;padding:14px;display:grid}.diary-prompt h2{margin-bottom:4px;font-size:1rem}.diary-prompt .link-button{margin-top:8px;display:inline-block}.diary-prompt__icon{background:var(--surface);width:40px;height:40px;color:var(--accent-text);border-radius:12px;place-items:center;font-size:1.2rem;display:grid}.diary-plan{border-radius:var(--radius);border:1px dashed var(--border);background:var(--surface);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 12px;margin-top:16px;padding:12px 16px;font-size:.9rem;display:flex}.diary-meals{margin-top:16px}.diary-meal__head{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:8px;display:flex}.diary-meal__kcal{color:var(--text-2);white-space:nowrap;font-variant-numeric:tabular-nums;font-weight:700}.diary-meal__empty{padding:4px 0 8px;font-size:.9rem}.diary-entries{margin:0;padding:0;list-style:none}.diary-entry{border-bottom:1px solid var(--border);grid-template-columns:40px minmax(0,1fr);gap:6px 12px;padding:12px 0;display:grid}.diary-entry__emoji{background:var(--surface-2);border-radius:12px;grid-row:span 2;place-items:center;width:40px;height:40px;font-size:1.3rem;display:grid}.diary-entry__main{justify-content:space-between;align-items:baseline;gap:8px;min-width:0;display:flex}.diary-entry__title{color:var(--text);overflow-wrap:anywhere;font-weight:650;text-decoration:none}a.diary-entry__title:hover{text-decoration:underline}.diary-entry__kcal{white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--text-2);font-weight:700}.diary-entry__actions{justify-content:space-between;align-items:center;gap:8px;display:flex}.stepper--compact .icon-button{width:32px;height:32px}.stepper--compact .stepper__value{min-width:96px;font-size:.85rem}.diary-entry__remove{color:var(--text-3)}.diary-entry__remove:not(:disabled):hover{color:var(--heart)}.diary-meal__add{background:var(--accent-soft);min-height:40px;color:var(--accent-text);border:0;border-radius:999px;align-items:center;gap:6px;margin-top:8px;padding:0 14px 0 10px;font-size:.9rem;font-weight:700;display:inline-flex}.diary-meal__add:hover{filter:brightness(.97)}.diary-week{margin-top:16px}.diary-week__target-label{font-size:.85rem}.week-chart{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;height:150px;padding-top:20px;display:grid;position:relative}.week-chart__target{border-top:2px dashed var(--text-3);opacity:.6;pointer-events:none;z-index:1;position:absolute;left:0;right:0}.week-chart__day{background:0 0;border:0;border-radius:8px;grid-template-rows:1fr 22px;min-width:0;padding:0;display:grid}.week-chart__plot{justify-content:center;align-items:flex-end;height:100%;display:flex;position:relative}.week-chart__bar{background:var(--accent);opacity:.55;border-radius:4px 4px 0 0;width:min(28px,70%);min-height:2px;transition:height .25s,opacity .15s}.week-chart__bar.is-empty{background:var(--border);opacity:1}.week-chart__day.is-selected .week-chart__bar,.week-chart__day:hover .week-chart__bar,.week-chart__day:focus-visible .week-chart__bar{opacity:1}.week-chart__label{color:var(--text-3);align-self:center;font-size:.75rem;font-weight:600}.week-chart__day.is-today .week-chart__label{color:var(--accent-text)}.week-chart__day.is-selected .week-chart__label{color:var(--text);font-weight:800}.week-chart__tip{background:var(--text);color:var(--surface);white-space:nowrap;pointer-events:none;z-index:2;border-radius:6px;padding:2px 6px;font-size:.72rem;font-weight:700;display:none;position:absolute;bottom:calc(100% + 4px);left:50%;transform:translate(-50%)}.week-chart__day.is-selected .week-chart__tip,.week-chart__day:hover .week-chart__tip,.week-chart__day:focus-visible .week-chart__tip{display:block}.picker{flex-direction:column;flex:1;min-height:0;display:flex}.picker__controls{border-bottom:1px solid var(--border);gap:10px;padding:0 20px 12px;display:grid}.picker__search{align-items:center;display:flex;position:relative}.picker__search input{border:1px solid var(--border);background:var(--surface-2);border-radius:999px;outline:none;width:100%;height:44px;padding:0 14px 0 40px}.picker__search input:focus{border-color:var(--accent)}.picker__search-icon{color:var(--text-3);pointer-events:none;position:absolute;left:14px}.picker__servings{justify-content:space-between;align-items:center;gap:8px;display:flex}.picker__list{overscroll-behavior:contain;padding:8px 12px 20px;overflow-y:auto}.picker__group h3,.picker__count{text-transform:uppercase;letter-spacing:.05em;color:var(--text-3);margin:10px 8px 4px;font-size:.75rem;font-weight:700}.picker__items{margin:0;padding:0;list-style:none}.picker-item{border-radius:var(--radius-sm);text-align:left;background:0 0;border:0;grid-template-columns:40px minmax(0,1fr) 24px;align-items:center;gap:12px;width:100%;padding:8px;display:grid}.picker-item:hover{background:var(--surface-2)}.picker-item__emoji{background:var(--surface-2);border-radius:12px;place-items:center;width:40px;height:40px;font-size:1.3rem;display:grid}.picker-item:hover .picker-item__emoji{background:var(--surface)}.picker-item__text{min-width:0;display:grid}.picker-item__title{text-overflow:ellipsis;white-space:nowrap;font-weight:650;overflow:hidden}.picker-item__meta{color:var(--text-3);font-size:.8rem}.picker-item__add{color:var(--accent-text);font-size:1.2rem}.picker .footnote{margin:12px 8px 0}.add-diary{gap:12px;padding:0 20px 20px;display:grid}.add-diary__recipe{font-size:1.05rem}.add-diary .chip[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.add-diary__confirm{margin-top:4px}.diary-summary__hero{flex-wrap:wrap;align-items:baseline;gap:4px 8px;display:flex}.plan-button{border:1px solid var(--border);background:var(--surface);min-height:44px;color:var(--text);border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:0 18px;font-weight:700;text-decoration:none;display:inline-flex}.plan-button:not(:disabled):hover{background:var(--surface-2)}.plan-button:disabled,.plan-actions .link-button:disabled{opacity:.45;cursor:default}.plan-button svg{color:var(--accent-text);font-size:1.15rem}.plan-button--danger{background:var(--heart);color:#fff}.plan-toolbar{gap:12px;margin-bottom:16px;display:grid}.plan-weeknav{flex-wrap:wrap;align-items:center;gap:8px 12px;display:flex}.plan-weeknav__label{text-align:center;flex:1;min-width:0}.plan-weeknav__label h2{font-size:1.1rem}.plan-weeknav__label .muted{font-size:.85rem}.plan-weeknav__today{text-align:center;flex-basis:100%;min-height:32px}.plan-controls{gap:14px;padding:16px;display:grid}.plan-actions{flex-wrap:wrap;align-items:center;gap:8px 10px;display:flex}.plan-actions>.button,.plan-actions>.plan-button{flex:auto}.plan-actions__clear{min-height:44px;padding:0 8px}.plan-confirm{gap:10px;display:grid}.plan-confirm p{font-weight:700}.plan-options{border-top:1px solid var(--border);flex-wrap:wrap;gap:12px 24px;padding-top:12px;display:flex}.plan-option{justify-items:start;gap:6px;display:grid}.plan-hint{margin:-4px 0 16px;font-size:.9rem}.plan-week{gap:12px;display:grid}.plan-day{background:var(--surface);border-radius:var(--radius);min-width:0;box-shadow:var(--shadow);border:2px solid #0000;padding:14px 16px 8px}.plan-day.is-today{border-color:var(--accent)}.plan-day__head{flex-wrap:wrap;align-items:baseline;gap:4px 10px;padding-bottom:6px;display:flex}.plan-day__head h2{align-items:baseline;gap:8px;font-size:1.05rem;display:flex}.plan-day__sub{align-items:center;gap:8px;display:inline-flex}.plan-day__date{color:var(--text-3);font-size:.85rem;font-weight:600}.plan-day__today{background:var(--accent);color:var(--accent-ink);text-transform:uppercase;letter-spacing:.04em;border-radius:999px;padding:1px 8px;font-size:.72rem;font-weight:800}.plan-day__kcal{color:var(--text-2);white-space:nowrap;margin-left:auto;font-size:.85rem;font-weight:700}.plan-day__kcal span{color:var(--text-3);font-weight:500}.plan-slot{border-top:1px solid var(--border);padding:4px 0}.plan-slot__head{justify-content:space-between;align-items:center;gap:8px;display:flex}.plan-slot__head h3{text-transform:uppercase;letter-spacing:.05em;color:var(--text-3);font-size:.75rem;font-weight:700}.plan-slot__add{width:36px;height:36px;color:var(--accent-text);font-size:1.05rem}.plan-entries{gap:6px;margin:0 0 6px;padding:0;list-style:none;display:grid}.plan-entry{border-radius:var(--radius-sm);background:var(--surface-2);gap:4px;padding:8px 10px;display:grid}.plan-entry__title{min-width:0;color:var(--text);overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto;align-items:flex-start;gap:8px;font-size:.92rem;font-weight:650;line-height:1.3;text-decoration:none;display:flex}.plan-entry__title:hover span:last-child{text-decoration:underline}.plan-entry__emoji{flex-shrink:0}.plan-entry__bar{flex-wrap:wrap;align-items:center;gap:4px 8px;display:flex}.plan-entry__servings{background:var(--surface);border-radius:999px;align-items:center;font-size:.85rem;font-weight:700;display:inline-flex}.plan-entry__servings>span{text-align:center;min-width:18px}.plan-entry__servings button,.plan-entry__tools button{width:32px;height:32px;color:var(--text-2);background:0 0;border:0;border-radius:999px;place-items:center;font-size:.95rem;display:inline-grid}.plan-entry__servings button:disabled{opacity:.35;cursor:default}.plan-entry__servings button:not(:disabled):hover,.plan-entry__tools button:hover{background:var(--border)}.plan-entry__tools button:last-child:hover{color:var(--heart)}.plan-entry__kcal{color:var(--text-3);white-space:nowrap;font-size:.8rem}.plan-entry__tools{margin-left:auto;display:inline-flex}@media (width>=900px){.plan-toolbar{grid-template-columns:minmax(280px,1fr) 2fr;align-items:start}.plan-week{grid-template-columns:repeat(4,minmax(0,1fr));align-items:start;gap:8px}.plan-day{padding:12px 8px 6px}.plan-day__head{align-content:start;gap:2px;min-height:70px;display:grid}.plan-day__head h2{gap:0;font-size:.98rem;display:grid}.plan-day__today{padding:0 6px;font-size:.64rem}.plan-day__kcal{white-space:normal;margin-left:0;font-size:.78rem}.plan-day__kcal span{display:block}.plan-entry{padding:6px}.plan-entry__title{gap:4px;font-size:.82rem}.plan-entry__bar{grid-template-columns:auto auto;justify-content:space-between;gap:2px 0;display:grid}.plan-entry__servings button,.plan-entry__tools button{width:24px;height:28px;font-size:.85rem}.plan-entry__servings>span{min-width:14px}.plan-entry__kcal{order:-1;grid-column:1/-1;font-size:.74rem}}.plan-sheet{border-radius:var(--radius) var(--radius) 0 0;background:var(--surface);width:100%;max-width:100%;max-height:88dvh;color:var(--text);box-shadow:var(--shadow);border:0;margin:auto auto 0;padding:0;overflow:hidden}.plan-sheet[open]{flex-direction:column;display:flex}.plan-sheet::backdrop{background:#00000073}.plan-sheet__box{min-height:0;padding:8px 16px calc(16px + env(safe-area-inset-bottom));overscroll-behavior:contain;flex-direction:column;display:flex;overflow-y:auto}.plan-sheet__head{z-index:1;background:var(--surface);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:8px;margin:-8px -16px 8px;padding:10px 8px 8px 16px;display:flex;position:sticky;top:-8px}.plan-sheet__head h2{overflow-wrap:anywhere;font-size:1.1rem}@media (width>=768px){.plan-sheet{border-radius:var(--radius);width:min(560px,100% - 48px);max-height:min(760px,86dvh);margin:auto}}.plan-picker{gap:10px;display:grid}.plan-picker__search{position:relative}.plan-picker__search-icon{color:var(--text-3);position:absolute;top:50%;left:14px;transform:translateY(-50%)}.plan-picker__search input{border:1px solid var(--border);background:var(--surface-2);border-radius:999px;width:100%;height:44px;padding:0 14px 0 40px}.plan-picker__search input:focus{outline:2px solid var(--accent);outline-offset:0}.plan-picker__cats{flex-wrap:wrap;gap:6px;display:flex}.plan-picker__count{font-size:.85rem}.plan-picker__list{gap:4px;margin:0;padding:0;list-style:none;display:grid}.plan-pick{border-radius:var(--radius-sm);text-align:left;background:0 0;border:0;align-items:center;gap:12px;width:100%;padding:8px;display:flex}.plan-pick:hover{background:var(--surface-2)}.plan-pick__emoji{background:hsl(var(--hue,120) 60% 88%);border-radius:12px;flex-shrink:0;place-items:center;width:44px;height:44px;font-size:1.4rem;display:grid}:root[data-theme=dark] .plan-pick__emoji{background:hsl(var(--hue,120) 30% 22%)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .plan-pick__emoji{background:hsl(var(--hue,120) 30% 22%)}}.plan-pick__text{gap:2px;min-width:0;display:grid}.plan-pick__title{font-weight:650;line-height:1.3}.plan-pick__meta{color:var(--text-3);flex-wrap:wrap;align-items:center;gap:4px 6px;font-size:.8rem;display:flex}.plan-pick__meta .tag{padding:0 6px;font-size:.72rem}.plan-pick__planned{color:var(--accent-text);font-weight:700}.plan-form{gap:16px;display:grid}.plan-form__recipe{font-weight:700}.plan-form__submit{justify-self:stretch}.plan-fieldset{border:0;gap:8px;min-width:0;margin:0;padding:0;display:grid}.plan-fieldset legend{margin-bottom:8px;padding:0}.plan-choice-week{gap:4px;display:grid}.plan-choice-week+.plan-choice-week{margin-top:6px}.plan-choice-week__label{font-size:.8rem;font-weight:600}.plan-day-choices{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;display:grid}.plan-meal-choices{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;display:grid}@media (width>=520px){.plan-meal-choices{grid-template-columns:repeat(4,minmax(0,1fr))}}.plan-choice{min-width:0;display:block;position:relative}.plan-choice input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.plan-choice input:disabled{cursor:default}.plan-choice>span{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);min-height:40px;color:var(--text-2);text-align:center;place-items:center;padding:4px 6px;font-size:.88rem;font-weight:650;line-height:1.2;display:grid}.plan-choice--day>span{min-height:48px;padding:4px 0}.plan-choice--day b{font-size:.82rem}.plan-choice--day small{font-size:.7rem;font-weight:500}.plan-choice.is-today>span{border-color:var(--accent)}.plan-choice input:checked+span{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.plan-choice input:disabled+span{opacity:.4}.plan-choice input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}.plan-toast-region{width:0;height:0;position:absolute}.plan-toast{text-align:center;border-radius:20px;flex-wrap:wrap;justify-content:center;align-items:center;gap:4px 12px;width:max-content;max-width:calc(100vw - 32px);display:flex}.plan-toast a{color:inherit;text-underline-offset:3px;font-weight:800;text-decoration:underline}.plan-entry>*,.plan-entry__title>span:last-child{min-width:0}@media (width>=1180px){.plan-week{grid-template-columns:repeat(7,minmax(0,1fr))}}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f4f6f3;--surface:#fff;--surface-2:#eef1ed;--border:#e1e5df;--text:#17201a;--text-2:#4b564e;--text-3:#6b766e;--accent:#168a4a;--accent-ink:#fff;--accent-soft:#e2f4e9;--accent-text:#11703b;--heart:#e0384f;--shadow:0 1px 2px #141e140f, 0 6px 20px #141e140f;--protein:#2a78d6;--carbs:#eb6834;--fat:#1baf7a;--tag-vegan-bg:#ddf3e4;--tag-vegan-fg:#145c33;--tag-vegetarian-bg:#edf3d6;--tag-vegetarian-fg:#4a5a12;--tag-highProtein-bg:#e1ecfb;--tag-highProtein-fg:#1d4f8f;--tag-lowCarb-bg:#fdeadf;--tag-lowCarb-fg:#8c3a12;--radius:18px;--radius-sm:12px;--nav-h:64px;--font:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#111513;--surface:#1a1f1c;--surface-2:#242a26;--border:#2e3631;--text:#edf1ee;--text-2:#b9c2bc;--text-3:#8f9a93;--accent:#3ecf7a;--accent-ink:#0b2415;--accent-soft:#1d3326;--accent-text:#6be09a;--heart:#ff6b7f;--shadow:0 1px 2px #0000004d, 0 6px 20px #00000040;--protein:#3987e5;--carbs:#d95926;--fat:#199e70;--tag-vegan-bg:#183823;--tag-vegan-fg:#8de3ab;--tag-vegetarian-bg:#2c3314;--tag-vegetarian-fg:#cfe08a;--tag-highProtein-bg:#172a45;--tag-highProtein-fg:#9cc4f5;--tag-lowCarb-bg:#3d2416;--tag-lowCarb-fg:#f6b48f}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#111513;--surface:#1a1f1c;--surface-2:#242a26;--border:#2e3631;--text:#edf1ee;--text-2:#b9c2bc;--text-3:#8f9a93;--accent:#3ecf7a;--accent-ink:#0b2415;--accent-soft:#1d3326;--accent-text:#6be09a;--heart:#ff6b7f;--shadow:0 1px 2px #0000004d, 0 6px 20px #00000040;--protein:#3987e5;--carbs:#d95926;--fat:#199e70;--tag-vegan-bg:#183823;--tag-vegan-fg:#8de3ab;--tag-vegetarian-bg:#2c3314;--tag-vegetarian-fg:#cfe08a;--tag-highProtein-bg:#172a45;--tag-highProtein-fg:#9cc4f5;--tag-lowCarb-bg:#3d2416;--tag-lowCarb-fg:#f6b48f}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;margin:0;font-size:16px;line-height:1.5}h1,h2,h3{letter-spacing:-.01em;margin:0;line-height:1.2}h1{font-size:1.75rem;font-weight:750}h2{font-size:1.2rem;font-weight:700}p{margin:0}a{color:var(--accent-text)}button,input,select{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}svg{flex-shrink:0}.muted{color:var(--text-3)}.footnote{color:var(--text-3);margin-top:12px;font-size:.8rem}.card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}.card+.card{margin-top:16px}.card>h2{margin-bottom:14px}.app{min-height:100dvh}.main{padding-bottom:calc(var(--nav-h) + env(safe-area-inset-bottom) + 24px)}.nav{z-index:20;background:color-mix(in srgb, var(--surface) 92%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom);position:fixed;inset:auto 0 0}.nav__brand{display:none}.nav__links{height:var(--nav-h);display:flex}.nav__link{color:var(--text-3);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;font-size:.72rem;font-weight:600;text-decoration:none;display:flex;position:relative}.nav__link svg{font-size:1.4rem}.nav__link.active{color:var(--accent-text)}.nav__link .badge{position:absolute;top:8px;left:calc(50% + 6px)}.badge{background:var(--accent);min-width:18px;height:18px;color:var(--accent-ink);text-align:center;border-radius:9px;padding:0 5px;font-size:.7rem;font-weight:700;line-height:18px}@media (width>=768px){.nav{top:0;border-top:0;border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:0 max(24px,50% - 580px);display:flex;position:sticky;inset:0 0 auto}.nav__brand{color:var(--text);align-items:center;gap:10px;font-size:1.15rem;font-weight:800;text-decoration:none;display:flex}.nav__links{align-items:center;gap:4px;height:64px}.nav__link{border-radius:999px;flex-direction:row;gap:8px;padding:8px 14px;font-size:.95rem}.nav__link svg{font-size:1.15rem}.nav__link.active{background:var(--accent-soft)}.nav__link .badge{position:static}.main{padding-bottom:48px}}.page{max-width:1160px;margin:0 auto;padding:24px 16px 0}.page-header{margin-bottom:16px}.page-header p{margin-top:4px}@media (width>=768px){.page{padding:32px 24px 0}}.search{align-items:center;gap:8px;display:flex;position:relative}.search input{border:1px solid var(--border);background:var(--surface);min-width:0;height:48px;box-shadow:var(--shadow);border-radius:999px;outline:none;flex:1;padding:0 44px}.search input:focus{border-color:var(--accent)}.search input::-webkit-search-cancel-button{display:none}.search__icon{color:var(--text-3);pointer-events:none;font-size:1.2rem;position:absolute;left:16px}.search__clear{position:absolute;right:64px}.search__filter{background:var(--surface);width:48px;height:48px;box-shadow:var(--shadow);border:1px solid var(--border);position:relative}.search__filter.is-active{background:var(--accent-soft);color:var(--accent-text);border-color:#0000}.search__filter .badge{position:absolute;top:-4px;right:-4px}.icon-button{width:40px;height:40px;color:var(--text-2);background:0 0;border:0;border-radius:999px;place-items:center;font-size:1.2rem;display:inline-grid}.icon-button:disabled{opacity:.35;cursor:default}.icon-button:not(:disabled):hover{background:var(--surface-2)}.chip-row{padding:12px 2px 2px;scrollbar-width:none;gap:8px;margin:0 -16px;padding-inline:16px;display:flex;overflow-x:auto}.chip-row::-webkit-scrollbar{display:none}.chip-row+.chip-row{padding-top:8px}.chip-row--wrap{flex-wrap:wrap;margin:0;padding:6px 0 0}.chip{border:1px solid var(--border);background:var(--surface);height:36px;color:var(--text-2);white-space:nowrap;border-radius:999px;flex-shrink:0;padding:0 16px;font-size:.9rem;font-weight:600}.chip[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.chip--tag[aria-pressed=true]{background:var(--tag-bg);color:var(--tag-fg);border-color:var(--tag-fg)}.chip--small{height:32px;padding:0 12px;font-size:.85rem}.filter-panel{gap:16px;margin-top:12px;display:grid}@media (width>=768px){.filter-panel{grid-template-columns:1fr 1fr auto;align-items:start}.chip-row{flex-wrap:wrap;margin:0;padding-inline:2px}}.field{gap:4px;display:grid}.field__label{color:var(--text-2);text-transform:uppercase;letter-spacing:.04em;font-size:.8rem;font-weight:700}.field select{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);height:40px;padding:0 12px}.results-bar{justify-content:space-between;align-items:center;margin:20px 0 12px;font-size:.9rem;display:flex}.link-button{color:var(--accent-text);background:0 0;border:0;padding:0;font-weight:600;text-decoration:none}.empty{color:var(--text-3);text-align:center;padding:32px 0}.empty--big{justify-items:center;gap:8px;padding:64px 16px;display:grid}.empty__icon{color:var(--heart);margin-bottom:8px;font-size:3rem}.tag-list{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.tag{background:var(--tag-bg);color:var(--tag-fg);border-radius:999px;padding:2px 10px;font-size:.75rem;font-weight:700}.tag--vegan{--tag-bg:var(--tag-vegan-bg);--tag-fg:var(--tag-vegan-fg)}.tag--vegetarian{--tag-bg:var(--tag-vegetarian-bg);--tag-fg:var(--tag-vegetarian-fg)}.tag--highProtein{--tag-bg:var(--tag-highProtein-bg);--tag-fg:var(--tag-highProtein-fg)}.tag--lowCarb{--tag-bg:var(--tag-lowCarb-bg);--tag-fg:var(--tag-lowCarb-fg)}.recipe-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr));align-items:stretch;gap:16px;display:grid}.recipe-card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);transition:transform .15s,box-shadow .15s;position:relative;overflow:hidden}.recipe-card__link{height:100%;color:inherit;flex-direction:column;text-decoration:none;display:flex}.recipe-card:hover{transform:translateY(-2px)}.recipe-card__media{aspect-ratio:4/3}.recipe-card__fav{position:absolute;top:10px;right:10px}.recipe-card__body{gap:6px;padding:14px 16px 16px;display:grid}.recipe-card__category{text-transform:uppercase;letter-spacing:.05em;color:var(--accent-text);font-size:.75rem;font-weight:700}.recipe-card__title{font-size:1.05rem}.recipe-card__meta{color:var(--text-2);gap:14px;font-size:.85rem;display:flex}.recipe-card__meta span{align-items:center;gap:4px;display:inline-flex}.recipe-image{background:linear-gradient(135deg, hsl(var(--hue) 75% 88%), hsl(calc(var(--hue) + 35) 70% 78%));place-items:center;display:grid;position:relative;overflow:hidden}:root[data-theme=dark] .recipe-image{background:linear-gradient(135deg, hsl(var(--hue) 35% 22%), hsl(calc(var(--hue) + 35) 35% 30%))}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .recipe-image{background:linear-gradient(135deg, hsl(var(--hue) 35% 22%), hsl(calc(var(--hue) + 35) 35% 30%))}}.recipe-image img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.recipe-image__emoji{filter:drop-shadow(0 6px 10px #00000026);font-size:4rem}.fav-button{background:color-mix(in srgb, var(--surface) 90%, transparent);width:40px;height:40px;color:var(--text-2);border:0;border-radius:999px;place-items:center;font-size:1.25rem;transition:transform .15s;display:grid;box-shadow:0 2px 8px #00000026}.fav-button:active{transform:scale(.9)}.fav-button.is-active{color:var(--heart)}.recipe__hero{max-width:1160px;margin:0 auto;position:relative}.recipe-image--hero{aspect-ratio:16/10;width:100%;max-height:46vh}.recipe-image--hero .recipe-image__emoji{font-size:6rem}.icon-button--float{top:calc(12px + env(safe-area-inset-top));background:color-mix(in srgb, var(--surface) 92%, transparent);width:44px;height:44px;color:var(--text);position:absolute;box-shadow:0 2px 8px #00000026}.recipe__back{left:12px}.recipe__fav{right:12px}.recipe__content{max-width:1160px;margin:-24px auto 0;padding:0 16px;position:relative}.recipe__header{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);gap:10px;padding:20px;display:grid}.recipe__desc{color:var(--text-2)}.stats{grid-template-columns:repeat(3,1fr);gap:8px;margin:6px 0 0;display:grid}.stats>div{background:var(--surface-2);border-radius:var(--radius-sm);min-width:0;padding:10px 12px}.stats dt{color:var(--text-3);align-items:center;gap:4px;font-size:.75rem;font-weight:600;display:flex}.stats dd{margin:2px 0 0;font-size:.95rem;font-weight:700}.recipe__columns{gap:16px;margin-top:16px;display:grid}@media (width>=900px){.recipe__hero{margin-top:24px;padding:0 24px}.recipe-image--hero{border-radius:var(--radius)}.recipe__back{left:36px}.recipe__fav{right:36px}.recipe__content{padding:0 48px}.recipe__columns{grid-template-columns:minmax(0,1fr) 380px;align-items:start}.recipe__side{order:2;position:sticky;top:88px}}.section-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 12px;margin-bottom:14px;display:flex}.segmented{background:var(--surface-2);border-radius:999px;padding:3px;display:inline-flex}.segmented button{color:var(--text-2);background:0 0;border:0;border-radius:999px;padding:6px 12px;font-size:.85rem;font-weight:600}.segmented button[aria-pressed=true]{background:var(--surface);color:var(--text);box-shadow:0 1px 3px #0000001f}.stepper{background:var(--surface-2);border-radius:999px;align-items:center;gap:4px;padding:2px;display:inline-flex}.stepper .icon-button{width:36px;height:36px;font-size:1rem}.stepper__value{text-align:center;min-width:92px;font-size:.9rem;font-weight:700}.ingredients{margin:0;padding:0;list-style:none}.ingredients li{border-bottom:1px solid var(--border);grid-template-columns:96px 1fr;gap:12px;padding:10px 0;display:grid}.ingredients li:last-child{border-bottom:0}.ingredients__amount{text-align:right;font-variant-numeric:tabular-nums;font-weight:700}.ingredients__note{color:var(--text-3)}.steps{gap:4px;margin:0;padding:0;list-style:none;display:grid}.steps__item{border-radius:var(--radius-sm);text-align:left;background:0 0;border:0;grid-template-columns:36px 1fr;gap:12px;width:100%;padding:10px 8px;display:grid}.steps__item:hover{background:var(--surface-2)}.steps__num{background:var(--accent-soft);width:32px;height:32px;color:var(--accent-text);border-radius:999px;place-items:center;font-weight:800;display:grid}.steps__label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-3);font-size:.75rem;font-weight:700;display:block}.steps__text{display:block}.is-done .steps__num{background:var(--accent);color:var(--accent-ink)}.is-done .steps__text{color:var(--text-3);text-decoration:line-through}.tip{border-radius:var(--radius-sm);background:var(--accent-soft);color:var(--text);margin-top:14px;padding:12px 14px}.nutrition__hero{align-items:baseline;gap:8px;display:flex}.nutrition__kcal{font-variant-numeric:tabular-nums;font-size:2.6rem;font-weight:800;line-height:1}.nutrition__unit{color:var(--text-3);font-weight:600}.macro{margin:16px 0 8px}.macro__label{color:var(--text-3);margin-bottom:6px;font-size:.8rem;font-weight:600}.macro__bar{gap:2px;height:14px;display:flex}.macro__seg{min-width:4px;transition:opacity .15s;position:relative}.macro__seg:first-child{border-radius:4px 0 0 4px}.macro__seg:last-child{border-radius:0 4px 4px 0}.macro__seg--protein{background:var(--protein)}.macro__seg--carbs{background:var(--carbs)}.macro__seg--fat{background:var(--fat)}.is-dim{opacity:.35}.macro__tip{white-space:nowrap;background:var(--text);color:var(--surface);pointer-events:none;z-index:2;border-radius:8px;padding:4px 8px;font-size:.8rem;font-weight:600;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%)}.macro__legend{grid-template-columns:repeat(3,1fr);gap:8px;margin:12px 0 0;padding:0;list-style:none;display:grid}.macro__legend li{grid-template-columns:10px 1fr;align-items:center;column-gap:6px;transition:opacity .15s;display:grid}.macro__swatch{border-radius:3px;width:10px;height:10px}.macro__name{color:var(--text-2);font-size:.8rem;font-weight:600}.macro__value{font-variant-numeric:tabular-nums;grid-column:2;font-size:1.05rem;font-weight:800}.macro__pct{color:var(--text-3);grid-column:2;font-size:.75rem}.nutrition-table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;margin-top:16px;font-size:.9rem}.nutrition-table th,.nutrition-table td{border-bottom:1px solid var(--border);text-align:right;padding:7px 0}.nutrition-table th:first-child{text-align:left;font-weight:600}.nutrition-table thead th{color:var(--text-3);text-transform:uppercase;letter-spacing:.04em;font-size:.75rem;font-weight:700}.nutrition-table td{white-space:nowrap;padding-left:12px}.nutrition-table__kj{color:var(--text-3);font-weight:400}.nutrition-table td:last-child{width:64px;color:var(--text-3)}.nutrition-table .is-sub th{color:var(--text-2);padding-left:14px;font-weight:400}.settings{gap:20px;display:grid}.settings .segmented{justify-self:start}.card p+p{margin-top:8px}@media (prefers-reduced-motion:reduce){*{transition:none!important}}.button{background:var(--accent);min-height:44px;color:var(--accent-ink);border:0;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:0 20px;font-weight:700;text-decoration:none;display:inline-flex}.button:hover{filter:brightness(1.05)}.button svg{font-size:1.15rem}.icon-button--outlined{background:var(--surface);border:1px solid var(--border);width:44px;height:44px;box-shadow:var(--shadow)}.link-button--danger{color:var(--heart)}.shopping-cta{flex-wrap:wrap;align-items:center;gap:8px 16px;margin-top:16px;display:flex}.shopping-cta__status{min-height:44px;color:var(--accent-text);align-items:center;gap:6px;font-weight:700;display:inline-flex}.page-header--row{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.progress{background:var(--surface-2);border-radius:3px;height:6px;margin-bottom:16px;overflow:hidden}.progress__bar{background:var(--accent);border-radius:3px;height:100%;transition:width .2s}.shopping__recipes{flex-wrap:wrap;gap:8px;margin-bottom:16px;display:flex}.recipe-chip{background:var(--surface);border:1px solid var(--border);border-radius:999px;align-items:center;max-width:100%;font-size:.85rem;font-weight:600;display:inline-flex}.recipe-chip a{color:var(--text);text-overflow:ellipsis;white-space:nowrap;padding:6px 4px 6px 12px;text-decoration:none;overflow:hidden}.recipe-chip__remove{width:32px;height:32px;color:var(--text-3);background:0 0;border:0;border-radius:999px;place-items:center;display:grid}.recipe-chip__remove:hover{color:var(--heart)}.shopping__group>h2{text-transform:uppercase;letter-spacing:.05em;color:var(--text-3);margin-bottom:4px;font-size:.8rem}.shopping__items{margin:0;padding:0;list-style:none}.shopping__items li+li{border-top:1px solid var(--border)}.check{cursor:pointer;grid-template-columns:24px 1fr auto;align-items:center;gap:12px;padding:10px 0;display:grid}.check input{opacity:0;pointer-events:none;position:absolute}.check__box{border:2px solid var(--border);color:#0000;border-radius:7px;place-items:center;width:24px;height:24px;font-size:.9rem;transition:background .15s,border-color .15s;display:grid}.check input:focus-visible+.check__box{outline:2px solid var(--accent);outline-offset:2px}.check input:checked+.check__box{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.check__text{min-width:0;display:grid}.check__sources{color:var(--text-3);font-size:.75rem}.check__amount{font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:700}.is-done .check__name,.is-done .check__amount{color:var(--text-3);text-decoration:line-through}.shopping__actions{justify-content:center;gap:24px;margin:24px 0 8px;display:flex}.empty__icon--accent{color:var(--accent-text)}.empty--big .button{margin-top:12px}.toast{left:50%;bottom:calc(var(--nav-h) + env(safe-area-inset-bottom) + 16px);background:var(--text);color:var(--surface);box-shadow:var(--shadow);z-index:30;border-radius:999px;padding:10px 16px;font-size:.9rem;font-weight:600;position:fixed;transform:translate(-50%)}@media (width>=768px){.toast{bottom:24px}.shopping{max-width:760px}}:root{--tag-season-bg:#e3f3d9;--tag-season-fg:#2f6a12;--tag-austria-bg:#fde4e4;--tag-austria-fg:#9b1c1c}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--tag-season-bg:#1f3517;--tag-season-fg:#a8e08a;--tag-austria-bg:#3e1a1a;--tag-austria-fg:#f6a5a5}}:root[data-theme=dark]{--tag-season-bg:#1f3517;--tag-season-fg:#a8e08a;--tag-austria-bg:#3e1a1a;--tag-austria-fg:#f6a5a5}.tag--season{--tag-bg:var(--tag-season-bg);--tag-fg:var(--tag-season-fg)}.tag--austria{--tag-bg:var(--tag-austria-bg);--tag-fg:var(--tag-austria-fg)}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.month-row{margin-bottom:16px}.chip--now:not([aria-pressed=true]){border-color:var(--accent);color:var(--accent-text)}.season-grid{gap:16px;display:grid}@media (width>=900px){.season-grid{grid-template-columns:repeat(3,1fr);align-items:start}}.season-grid .card+.card{margin-top:0}.season-group>h2{margin-bottom:8px}.season-group__label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-3);margin:10px 0 6px;font-size:.75rem;font-weight:700}.produce-list{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.produce{background:var(--surface-2);color:var(--text-2);border-radius:999px;padding:4px 10px;font-size:.85rem}.produce--fresh{background:var(--tag-season-bg);color:var(--tag-season-fg);font-weight:600}.season-strip{margin-top:16px}.season-strip h2{align-items:center;gap:8px;display:flex}.season-strip__status{color:var(--text-3);font-size:.85rem}.season-strip__status.is-now{color:var(--tag-season-fg);font-weight:700}.month-cells{grid-template-columns:repeat(12,1fr);gap:3px;margin:0;padding:0;list-style:none;display:grid}.month-cells li{background:var(--surface-2);height:30px;color:var(--text-3);border-radius:6px;place-items:center;font-size:.75rem;font-weight:700;display:grid}.month-cells li.is-on{background:var(--tag-season-bg);color:var(--tag-season-fg)}.month-cells li.is-now{outline:2px solid var(--accent);outline-offset:-2px}@media (width<=420px){.nav__link{font-size:.66rem}}.segmented{flex-wrap:wrap}.segmented--stack{border-radius:var(--radius-sm);justify-self:stretch;max-width:320px;display:grid}.segmented--stack button{text-align:left;border-radius:9px;padding:10px 14px}.recipe-actions{grid-template-columns:1fr 1fr;gap:8px;margin-top:4px;display:grid}.recipe-actions>:first-child{grid-column:1/-1}.recipe-actions>*,.recipe-actions .button{width:100%;min-width:0}@media (width>=900px){.recipe-actions{grid-template-columns:repeat(3,max-content)}.recipe-actions>:first-child{grid-column:auto}}.recipe-actions:empty{display:none}.featured-row{gap:16px;margin-bottom:16px;display:grid}@media (width>=900px){.featured-row{grid-template-columns:1fr 1fr}}.featured{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);color:inherit;grid-template-columns:120px 1fr;text-decoration:none;display:grid;overflow:hidden}.featured__media{height:100%;min-height:140px}.featured__media .recipe-image__emoji{font-size:3rem}.featured__body{align-content:start;gap:4px;min-width:0;padding:14px 16px;display:grid}.featured__label{text-transform:uppercase;letter-spacing:.05em;color:var(--accent-text);font-size:.75rem;font-weight:800}.featured__hint{color:var(--text-3);font-weight:600}.featured h3{font-size:1.05rem}.featured__desc{color:var(--text-2);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.85rem;display:-webkit-box;overflow:hidden}.season-banner{border-radius:var(--radius);background:var(--tag-season-bg);color:var(--text);gap:6px;margin-bottom:8px;padding:14px 16px;font-size:.9rem;display:grid}.season-banner__head{justify-content:space-between;align-items:center;gap:8px;display:flex}.season-banner h2{color:var(--tag-season-fg);align-items:center;gap:6px;font-size:1rem;display:flex}.season-banner__label{background:var(--surface);border-radius:999px;padding:1px 8px;font-size:.75rem;font-weight:800;display:inline-block}.season-banner__label--new{color:var(--tag-season-fg)}.season-banner__label--end{color:var(--tag-lowCarb-fg)}.chip--link{align-items:center;text-decoration:none;display:inline-flex}.tag--budget{--tag-bg:var(--tag-highProtein-bg);--tag-fg:var(--tag-highProtein-fg)}.filter-panel__wide{grid-column:1/-1}.menu{margin:0;padding:6px 0;list-style:none}.menu li+li{border-top:1px solid var(--border)}.menu-item{color:inherit;grid-template-columns:40px 1fr 20px;align-items:center;gap:12px;padding:12px 20px;text-decoration:none;display:grid}.menu-item:hover{background:var(--surface-2)}.menu-item__icon{background:var(--accent-soft);width:40px;height:40px;color:var(--accent-text);border-radius:12px;place-items:center;font-size:1.2rem;display:grid}.menu-item__text{display:grid}.menu-item__title{font-weight:700}.menu-item__hint{color:var(--text-3);font-size:.85rem}.menu-item__chevron{color:var(--text-3)}.app--fullscreen .main{padding-bottom:0}.discover-intro{margin-top:16px}.recipe-actions .button.button{white-space:nowrap;padding:0 12px}.recipe-actions .plan-button{white-space:nowrap;justify-content:center;padding-inline:12px}.sheet{border-radius:var(--radius) var(--radius) 0 0;background:var(--surface);width:100%;max-width:560px;max-height:min(88dvh,760px);color:var(--text);border:0;margin:auto auto 0;padding:0;overflow:hidden;box-shadow:0 -8px 40px #00000040}.sheet[open]{flex-direction:column;display:flex}.sheet::backdrop{background:#00000073}@media (width>=640px){.sheet{border-radius:var(--radius);margin:auto}}.sheet__inner{min-height:0;padding-bottom:env(safe-area-inset-bottom);flex-direction:column;flex:1;display:flex}.sheet__head{justify-content:space-between;align-items:center;gap:8px;padding:16px 12px 8px 20px;display:flex}.sheet__head h2{font-size:1.1rem}
