@import "https://fonts.googleapis.com/css2?family=Figtree:wght@400;500;600;700&family=Young+Serif&display=swap";:root{--color-bg:#f5f0e6;--color-surface:#fffcf6;--color-surface-sunk:#ece4d4;--color-chip:#efe8da;--color-input:#fff;--color-border:#e2d8c5;--color-divider:#ede5d5;--color-border-strong:#cfc3ab;--color-text:#1e2620;--color-text-secondary:#3d463b;--color-text-muted:#56604f;--color-placeholder:#6b7166;--color-accent:#b8441c;--color-accent-text:#93350f;--color-accent-text-hover:#6e270b;--color-accent-soft:#f7e1d5;--color-green:#2e5a45;--color-green-soft:#dde8df;--color-green-soft-text:#1f4433;--color-live:#3a8a5c;--color-error:#a3261b;--avatar-1:#2e5a45;--avatar-2:#b8441c;--avatar-3:#6b5b3e;--font-display:"Young Serif", Georgia, serif;--font-body:"Figtree", "Segoe UI", system-ui, sans-serif;--radius-sm:10px;--radius-md:12px;--radius-lg:16px;--radius-pill:999px;--shadow-card-hover:0 4px 14px #1e262012;--shadow-primary:0 2px 8px #b8441c40;--shadow-selected:0 1px 2px #1e26201f;--focus-ring:2px solid #b8441c;--sidebar-width:248px;--tab-bar-height:76px;font-family:var(--font-body);color:var(--color-text);background:var(--color-bg);font-synthesis:none;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{background:var(--color-bg);min-width:320px;margin:0;font-size:15px;line-height:1.5}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}a{color:var(--color-accent-text)}a:hover{color:var(--color-accent-text-hover)}:focus-visible{outline:var(--focus-ring);outline-offset:2px}::placeholder{color:var(--color-placeholder);opacity:1}.auth-screen{background-image:radial-gradient(#e2dcd0 1px,#0000 1px);background-size:18px 18px;place-items:center;min-height:100svh;padding:32px 17px;display:grid}.auth-panel{background:#fdfcf8;border:1px solid #d9d8ce;border-radius:6px;width:min(100%,430px);padding:38px}.auth-panel h1{margin:0 0 12px;font-size:42px}.auth-copy{color:#637168;margin-bottom:24px;font-size:14px;line-height:1.5}.auth-switch{border-bottom:1px solid #d9d8ce;gap:4px;margin-bottom:22px;display:flex}.auth-switch button{color:#6a776e;cursor:pointer;font:11px var(--font-body);text-transform:uppercase;background:0 0;border:0;border-bottom:2px solid #0000;padding:10px 12px}.auth-switch button.is-active{color:#365832;border-color:#527f4d}.auth-form{gap:15px;display:grid}.auth-form label{color:#56645a;gap:7px;font-size:12px;display:grid}.auth-form input{color:#17251e;background:#fff;border:1px solid #d2d7cd;border-radius:3px;width:100%;height:44px;padding:8px 10px}.auth-submit,.google-button{color:#fff;text-align:center;cursor:pointer;background:#365832;border:1px solid #365832;border-radius:3px;width:100%;padding:12px;font-size:12px;text-decoration:none;display:block}.auth-divider{color:#89938b;font:10px var(--font-body);text-transform:uppercase;align-items:center;gap:10px;margin:20px 0;display:flex}.auth-divider:before,.auth-divider:after{content:"";background:#d9d8ce;flex:1;height:1px}.google-button{color:#334239;background:#fff;border-color:#b8c1b4}@media (width<=560px){.auth-panel{padding:26px 20px}.auth-panel h1{font-size:36px}}.brand,.brand:hover{color:var(--color-text);align-items:center;gap:10px;padding:0 6px;text-decoration:none;display:inline-flex}.brand__name{font-family:var(--font-display);font-size:21px;line-height:1}.avatar{width:var(--avatar-size);height:var(--avatar-size);border:2px solid var(--avatar-ring);color:#fff;font-size:max(8px, calc(var(--avatar-size) / 3));border-radius:50%;flex:none;justify-content:center;align-items:center;font-weight:700;line-height:1;display:inline-flex}.avatar--ring-bg{--avatar-ring:var(--color-bg)}.avatar--ring-surface{--avatar-ring:var(--color-surface)}.avatar--ring-none{border:0}.avatar--more{background:var(--color-chip);color:var(--color-text-secondary)}.avatar-stack{display:inline-flex}.avatar-stack>.avatar+.avatar{margin-left:-8px}.avatar-stack--large>.avatar+.avatar{margin-left:-12px}.household-card,.household-card:hover{border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-text);border-radius:14px;flex-direction:column;gap:12px;margin-top:auto;padding:16px;text-decoration:none;display:flex}.household-card:hover{border-color:var(--color-border-strong)}.household-card__label{color:var(--color-text-muted);letter-spacing:.08em;text-transform:uppercase;font-size:12px;font-weight:600}.household-card__text{flex-direction:column;gap:2px;min-width:0;display:flex}.household-card__name{overflow-wrap:anywhere;font-size:14px;font-weight:600}.household-card__count{color:var(--color-text-muted);font-size:13px}.sidebar{border-right:1px solid var(--color-border);background:var(--color-surface-sunk);flex-direction:column;gap:36px;height:100svh;padding:28px 20px 24px;display:flex;position:sticky;top:0;overflow-y:auto}.sidebar__nav{flex-direction:column;display:flex}.sidebar__list{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.sidebar__link,.sidebar__link:hover{border-radius:var(--radius-sm);min-height:44px;color:var(--color-text-secondary);align-items:center;gap:12px;padding:0 14px;font-size:15px;font-weight:500;text-decoration:none;display:flex}.sidebar__link:hover{color:var(--color-text);background:#fffcf68c}.sidebar__link.is-active{background:var(--color-surface);color:var(--color-text);font-weight:600;box-shadow:0 1px 2px #1e262014}.sidebar__group-label{color:var(--color-text-muted);letter-spacing:.08em;text-transform:uppercase;margin:24px 0 6px;padding:0 14px;font-size:12px;font-weight:600}.sidebar__list--secondary .sidebar__link{font-size:14px}@media (width<=1023px){.sidebar{display:none}}.more-sheet__backdrop{z-index:18;cursor:default;background:#1e262047;border:0;position:fixed;inset:0}.more-sheet{right:0;bottom:calc(var(--tab-bar-height) + env(safe-area-inset-bottom));z-index:19;border-top:1px solid var(--color-border);border-radius:var(--radius-lg) var(--radius-lg) 0 0;background:var(--color-surface);padding:20px 12px 12px;position:fixed;left:0;box-shadow:0 -8px 30px #1e26201f}.more-sheet:focus{outline:none}.more-sheet__label{padding:0 8px}.more-sheet__list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.more-sheet__list li+li{border-top:1px solid var(--color-divider)}.more-sheet__link,.more-sheet__link:hover{border-radius:var(--radius-sm);min-height:56px;color:var(--color-text);align-items:center;gap:14px;padding:8px;text-decoration:none;display:flex}.more-sheet__link>svg:first-child{color:var(--color-text-secondary);flex:none}.more-sheet__link>svg:last-child{color:var(--color-text-muted);flex:none}.more-sheet__link.is-active,.more-sheet__link.is-active>svg:first-child{color:var(--color-accent-text)}.more-sheet__text{flex-direction:column;flex:auto;gap:2px;min-width:0;display:flex}.more-sheet__text strong{font-size:15px;font-weight:600}.more-sheet__text small{color:var(--color-text-muted);font-size:13px}@media (width>=1024px){.more-sheet,.more-sheet__backdrop{display:none}}.tab-bar{z-index:20;height:calc(var(--tab-bar-height) + env(safe-area-inset-bottom));padding:6px 4px calc(14px + env(safe-area-inset-bottom));border-top:1px solid var(--color-border);background:var(--color-surface);grid-template-columns:repeat(5,minmax(0,1fr));display:none;position:fixed;bottom:0;left:0;right:0}.tab-bar__tab,.tab-bar__tab:hover{min-width:0;color:var(--color-text-muted);background:0 0;border:0;flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:0 2px;font-size:12px;font-weight:500;line-height:1.2;text-decoration:none;display:flex}.tab-bar__tab span{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.tab-bar__tab.is-active{color:var(--color-accent-text);font-weight:700}@media (width<=1023px){.tab-bar{display:grid}}.app-layout{grid-template-columns:var(--sidebar-width) minmax(0, 1fr);align-items:start;min-height:100svh;display:grid}.app-layout__content{align-content:start;width:100%;min-width:0;max-width:1296px;padding:40px 48px;display:grid;overflow-x:clip}@media (width<=1023px){.app-layout{grid-template-columns:minmax(0,1fr)}.app-layout__content{padding:16px 20px calc(28px + var(--tab-bar-height) + env(safe-area-inset-bottom))}.app-layout--focused .app-layout__content{padding:0 20px calc(28px + env(safe-area-inset-bottom))}}.button{border-radius:var(--radius-pill);white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;gap:10px;padding:0 22px;font-size:15px;font-weight:600;line-height:1;text-decoration:none;display:inline-flex}.button:disabled{opacity:.5;cursor:not-allowed}.button--md{min-height:44px;padding:0 18px;font-size:14px}.button--lg{min-height:48px}.button--lg.button--with-icon{padding:0 24px 0 20px}.button--block{width:100%;display:flex}.button--primary,.button--primary:hover{border-color:var(--color-accent);background:var(--color-accent);color:#fff;box-shadow:var(--shadow-primary)}.button--primary:hover:not(:disabled){border-color:var(--color-accent-text);background:var(--color-accent-text)}.button--secondary,.button--secondary:hover{border-color:var(--color-border-strong);background:var(--color-surface);color:var(--color-text)}.button--secondary:hover:not(:disabled){background:var(--color-chip)}@media (width<=1023px){.button--lg{min-height:52px;font-size:16px}}.load-error{flex-wrap:wrap;align-items:center;gap:12px 16px;display:flex}.load-error__message{color:var(--color-error);margin:0;font-size:14px}.icon-button{border-radius:var(--radius-sm);width:44px;height:44px;color:var(--color-text);background:0 0;border:1px solid #0000;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}a.icon-button:hover{color:var(--color-text)}.icon-button:disabled{opacity:.45;cursor:not-allowed}.icon-button--outline{border-color:var(--color-border);background:var(--color-surface)}.icon-button--outline:hover:not(:disabled){border-color:var(--color-border-strong)}.icon-button--ghost:hover:not(:disabled){background:var(--color-chip)}@media (width<=1023px){.icon-button--mobile-ghost,.icon-button--mobile-ghost:hover:not(:disabled){background:0 0;border-color:#0000}.icon-button--mobile-ghost:hover:not(:disabled){background:var(--color-chip)}}.screen-header{flex-direction:column;gap:12px;margin-top:-8px;display:flex}.screen-header__back,.screen-header__back:hover{height:36px;color:var(--color-text-secondary);align-self:flex-start;align-items:center;gap:8px;font-size:14px;font-weight:600;text-decoration:none;display:inline-flex}.screen-header__back:hover{color:var(--color-text)}.screen-header__eyebrow{margin:0}.screen-header__title{margin:0;font-size:40px}.screen-bar{grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;height:60px;margin:0 -12px -20px;display:grid}.screen-bar__text{text-align:center;flex-direction:column;align-items:center;gap:2px;display:flex}.screen-bar__text h1{font-family:var(--font-body);margin:0;font-size:16px;font-weight:600;line-height:1.3}.screen-bar__text span{color:var(--color-text-muted);font-size:13px}.card{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);overflow:hidden}.card--padding-md{padding:16px}.card--padding-lg{padding:24px}.card--divided>*+*{border-top:1px solid var(--color-divider)}.field{flex-direction:column;gap:6px;min-width:0;display:flex}.field__label{color:var(--color-text-secondary);font-size:13px;font-weight:600}.field__hint,.field__error{margin:0;font-size:13px}.field__hint{color:var(--color-text-muted)}.field__error{color:var(--color-error)}.field-control{border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-input);width:100%;min-width:0;color:var(--color-text);font-size:15px}.field-control:disabled{opacity:.6;cursor:not-allowed}.field-control[aria-invalid=true]{border-color:var(--color-error)}.field-control--input,.field-control--select{height:44px;padding:0 12px}.field-control--textarea{resize:vertical;min-height:76px;padding:10px 12px;line-height:1.45}@media (width<=1023px){.field-control{font-size:16px}.field-control--input,.field-control--select{height:48px;padding:0 14px}}.stepper{border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-input);flex:none;justify-content:space-between;align-items:center;width:160px;height:44px;display:inline-flex}.stepper__button{border-radius:var(--radius-sm);width:44px;height:42px;color:var(--color-text);background:0 0;border:0;justify-content:center;align-items:center;padding:0;display:flex}.stepper__button:hover:not(:disabled){background:var(--color-chip)}.stepper__button:disabled{opacity:.35;cursor:not-allowed}.stepper__value{font-size:16px;font-weight:600}@media (width<=1023px){.stepper{height:48px}.stepper__button{height:46px}}.meal-edit-form{flex-direction:column;gap:24px;display:flex}.meal-edit-form__card{flex-direction:column;gap:12px;display:flex}.meal-edit-form__heading{margin:0;font-size:20px}.meal-edit-form__card>.meal-edit-form__heading{margin-bottom:8px}.meal-edit-form__details{grid-template-columns:minmax(0,2fr) repeat(3,minmax(0,1fr));gap:16px;display:grid}.meal-edit-form__details--with-meal{grid-template-columns:repeat(4,minmax(0,1fr))}.meal-edit-form__details--with-meal>:first-child{grid-column:1/-1}.meal-edit-form__details .stepper{width:100%}.meal-edit-form__suffixed{position:relative}.meal-edit-form__suffixed input{padding-right:48px}.meal-edit-form__suffixed span{color:var(--color-text-muted);pointer-events:none;font-size:15px;position:absolute;top:50%;right:14px;transform:translateY(-50%)}.meal-edit-form__lists{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:24px;display:grid}.meal-edit-form__section-head{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:4px;display:flex}.meal-edit-form__section-head span{color:var(--color-text-muted);font-size:13px}.meal-edit-form__ingredient-labels,.meal-edit-form__ingredient{grid-template-columns:120px minmax(0,1fr) 40px;align-items:center;gap:8px;display:grid}.meal-edit-form__ingredient-labels{color:var(--color-text-muted);letter-spacing:.06em;text-transform:uppercase;font-size:12px;font-weight:600}.meal-edit-form__rows{flex-direction:column;gap:8px;display:flex}.meal-edit-form__step{grid-template-columns:28px minmax(0,1fr) 40px;align-items:start;gap:12px;display:grid}.meal-edit-form__step-number{background:var(--color-text);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;margin-top:10px;font-size:13px;font-weight:700;display:flex}.meal-edit-form__step .meal-edit-form__remove{margin-top:2px}.meal-edit-form__remove{border-radius:var(--radius-sm);width:40px;height:40px;color:var(--color-text-muted);background:0 0;border:0;justify-content:center;align-items:center;padding:0;display:flex}.meal-edit-form__remove:hover{background:var(--color-chip);color:var(--color-text)}.meal-edit-form__add{border:1px dashed var(--color-border-strong);border-radius:var(--radius-sm);height:44px;color:var(--color-text);background:0 0;justify-content:center;align-items:center;gap:8px;margin-top:4px;font-size:14px;font-weight:600;display:flex}.meal-edit-form__add:hover{background:var(--color-surface)}.meal-edit-form__error{margin:0}.meal-edit-form__footer{border:1px solid var(--color-border);background:var(--color-surface);border-radius:14px;align-items:center;gap:12px;padding:14px 16px 14px 20px;display:flex}.meal-edit-form__note{color:var(--color-text-muted);flex:auto;margin:0;font-size:14px}.meal-edit-form__cancel{margin-left:auto}@media (width<=1023px){.meal-edit-form{gap:24px}.meal-edit-form__card{background:0 0;border:0;border-radius:0;padding:0;overflow:visible}.meal-edit-form__card:first-child>.meal-edit-form__heading{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.meal-edit-form__details{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.meal-edit-form__details>:first-child{grid-column:1/-1}.meal-edit-form__lists{grid-template-columns:minmax(0,1fr)}.meal-edit-form__ingredient-labels{display:none}.meal-edit-form__ingredient{grid-template-columns:88px minmax(0,1fr) 40px;gap:6px}.meal-edit-form__step{grid-template-columns:26px minmax(0,1fr) 40px;gap:10px}.meal-edit-form__step-number{width:26px;height:26px;font-size:12px}.meal-edit-form__add{height:48px;font-size:15px}.meal-edit-form__footer{z-index:5;margin:0 -20px calc(-28px - env(safe-area-inset-bottom));padding:12px 20px calc(20px + env(safe-area-inset-bottom));border:0;border-top:1px solid var(--color-border);border-radius:0;flex-direction:column;align-items:stretch;gap:10px;position:sticky;bottom:0}.meal-edit-form__note{font-size:13px}.meal-edit-form__cancel{display:none}.meal-edit-form__submit{width:100%}}.checkbox{min-height:44px;color:var(--color-text);cursor:pointer;align-items:center;gap:10px;font-size:14px;display:inline-flex}.checkbox__input{width:18px;height:18px;accent-color:var(--color-green);cursor:pointer;flex:none;margin:0}.checkbox:has(.checkbox__input:disabled){opacity:.6;cursor:not-allowed}.toggle-pill{border:1px solid var(--color-border-strong);border-radius:var(--radius-pill);background:var(--color-surface);min-width:56px;min-height:44px;color:var(--color-text);justify-content:center;align-items:center;gap:6px;padding:0 16px;font-size:14px;font-weight:500;display:inline-flex}.toggle-pill:hover:not(:disabled):not(.is-selected){background:var(--color-chip)}.toggle-pill:disabled{opacity:.5;cursor:not-allowed}.toggle-pill.is-selected:disabled{opacity:1}.toggle-pill--with-icon{padding-left:12px}.toggle-pill.is-selected{font-weight:600}.toggle-pill--select.is-selected{border-color:var(--color-green);background:var(--color-green);color:#fff}.toggle-pill--avoid.is-selected{border-color:var(--color-accent);background:var(--color-accent-soft);color:var(--color-accent-text)}.recipe-library{grid-template-columns:minmax(0,1fr) 300px;align-items:start;gap:32px;display:grid}.recipe-library__main{flex-direction:column;gap:16px;min-width:0;display:flex}.recipe-library__search{color:var(--color-text-muted);position:relative}.recipe-library__search svg{pointer-events:none;position:absolute;top:50%;left:16px;transform:translateY(-50%)}.recipe-library__search input{border-radius:var(--radius-md);height:48px;padding:0 16px 0 46px}.recipe-library__filters{flex-wrap:wrap;gap:8px;display:flex}.recipe-library__count{color:var(--color-text-muted);margin:0;font-size:14px}.recipe-library>.recipe-library__main>.empty-state{margin:0}.recipe-library__list{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:0;padding:0;list-style:none;display:grid}.recipe-library__card{flex-direction:column;gap:12px;height:100%;padding:20px;display:flex}.recipe-library__heading{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.recipe-library__title{margin:0;font-size:18px;line-height:1.3}.recipe-library__favorite{margin:-12px -12px -12px 0}.recipe-library__title button{color:inherit;font:inherit;text-align:left;background:0 0;border:0;padding:0}.recipe-library__title button:hover{color:var(--color-accent-text);text-underline-offset:3px;text-decoration:underline}.recipe-library__meta{color:var(--color-text-muted);flex-wrap:wrap;align-items:center;gap:16px;margin:0;font-size:13px;display:flex}.recipe-library__meta>span{align-items:center;gap:6px;display:inline-flex}.recipe-library__chips{flex-wrap:wrap;gap:6px;display:flex}.recipe-library__chips .chip{min-height:26px;padding:0 10px;font-size:12px}.recipe-library__footer{border-top:1px solid var(--color-divider);justify-content:space-between;align-items:center;gap:12px;margin-top:auto;padding-top:12px;display:flex}.recipe-library__source{color:var(--color-text-muted);font-size:13px}.recipe-library__action.button--secondary{border-color:var(--color-text);gap:8px;min-height:40px;padding:0 16px 0 12px}.recipe-library__more{align-self:center}.recipe-library__aside{flex-direction:column;gap:16px;display:flex}.recipe-library__replacing{flex-direction:column;gap:10px;padding:20px;display:flex}.recipe-library__replacing .eyebrow{margin:0}.recipe-library__aside .recipe-library__replacing-title{font-family:var(--font-display);font-size:20px;line-height:1.25}.recipe-library__replacing-meta{color:var(--color-text-muted);align-items:center;gap:6px;font-size:14px;display:flex}.recipe-library__within-time{align-items:flex-start;padding:4px;line-height:1.45}.recipe-library__within-time .checkbox__input{margin-top:1px}.recipe-library__preview{flex-direction:column;align-items:flex-start;gap:20px;display:flex}.recipe-library__preview .recipe-body{width:100%}.recipe-library__preview-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;width:100%;display:flex}.recipe-library__preview-actions{flex-wrap:wrap;gap:8px;display:flex}.recipe-library__replacing--bar,.recipe-library__within-time--mobile,.recipe-library__meta>.recipe-library__mobile-only{display:none}@media (width<=1023px){.recipe-library{grid-template-columns:minmax(0,1fr)}.recipe-library__aside,.recipe-library__meta>.recipe-library__desktop-only{display:none}.recipe-library__meta>.recipe-library__mobile-only,.recipe-library__within-time--mobile{display:inline-flex}.recipe-library__replacing--bar{border-radius:var(--radius-md);background:var(--color-surface-sunk);color:var(--color-text-secondary);flex-direction:row;align-items:center;gap:12px;padding:12px 14px;display:flex}.recipe-library__replacing--bar>span{flex-direction:column;gap:2px;display:flex}.recipe-library__replacing-label{color:var(--color-text-muted);letter-spacing:.08em;text-transform:uppercase;font-size:11px;font-weight:600}.recipe-library__replacing--bar .recipe-library__replacing-title{color:var(--color-text);font-size:15px;font-weight:600}.recipe-library__search svg{left:14px}.recipe-library__search input{padding-left:44px}.recipe-library__filters{scrollbar-width:none;flex-wrap:nowrap;margin:0 -20px;padding:0 20px;overflow-x:auto}.recipe-library__filters>*{flex:none}.recipe-library__list{grid-template-columns:minmax(0,1fr);gap:10px}.recipe-library__card{border-radius:14px;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:4px 12px;padding:14px 12px 14px 16px;display:grid}.recipe-library__heading{display:contents}.recipe-library__title{grid-column:1;font-size:16px}.recipe-library__favorite{grid-area:1/2/span 2;margin:0 -6px}.recipe-library__meta{grid-column:1;gap:4px}.recipe-library__meta>span+span:before{content:"·";margin-right:2px}.recipe-library__meta svg{display:none}.recipe-library__chips{grid-column:1/-1;margin-top:6px}.recipe-library__footer{display:contents}.recipe-library__source{display:none}.recipe-library__action.button--secondary{grid-area:1/3/span 2;min-height:44px;padding:0 16px}.recipe-library__action svg{display:none}}.chip{border-radius:var(--radius-pill);border:1px solid #0000;align-items:center;gap:2px;max-width:100%;min-height:30px;padding:0 12px;font-size:13px;font-weight:500;line-height:1.2;display:inline-flex}.chip--neutral{border-color:var(--color-border);background:var(--color-surface);color:var(--color-text)}.chip--soft{background:var(--color-chip);color:var(--color-text)}.chip>svg{flex:none;margin-right:4px}.chip--green{background:var(--color-green-soft);color:var(--color-green-soft-text);font-weight:600}.chip--accent{background:var(--color-accent-soft);color:var(--color-accent-text);font-weight:600}.chip--removable{min-height:44px;padding:0 2px 0 14px;font-size:14px}.chip__remove{width:40px;height:40px;color:inherit;background:0 0;border:0;border-radius:50%;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.chip__remove:hover{background:#1e26200f}.modal-backdrop{z-index:40;cursor:default;background:#1e262066;border:0;position:fixed;inset:0}.modal-dialog{z-index:41;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);gap:16px;width:min(560px,100vw - 32px);max-height:calc(100svh - 64px);padding:24px;display:grid;position:fixed;top:50%;left:50%;overflow-y:auto;transform:translate(-50%,-50%);box-shadow:0 16px 40px #1e262024}.modal-dialog__heading{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.modal-dialog__heading h2{margin:8px 0 0;font-size:22px;line-height:1.25}.modal-dialog__heading .icon-button{color:var(--color-text-muted);margin:-4px -8px 0 0}@media (width<=1023px){.modal-dialog{width:calc(100vw - 24px);max-height:calc(100svh - 40px);padding:20px}}.recipe-body{gap:48px;display:grid}.recipe-body--columns{grid-template-columns:300px minmax(0,1fr)}.recipe-body--stacked{grid-template-columns:minmax(0,1fr);gap:28px}.recipe-body__section{flex-direction:column;gap:12px;min-width:0;display:flex}.recipe-body__heading{margin:0;font-size:20px}.recipe-body__ingredients{margin:0;padding:0;font-size:15px;line-height:1.4;list-style:none}.recipe-body__ingredients>li{border-top:1px solid var(--color-divider)}.recipe-body__ingredients>li:last-child{border-bottom:1px solid var(--color-divider)}.recipe-body__ingredient{grid-template-columns:84px minmax(0,1fr);gap:12px;padding:9px 0;display:grid}.recipe-body__ingredient strong,.recipe-body__check strong{font-weight:600}.recipe-body__check{cursor:pointer;align-items:center;gap:12px;min-height:48px;display:flex}.recipe-body__check input{width:20px;height:20px;accent-color:var(--color-green);flex:none;margin:0}.recipe-body__check.is-ticked>span{color:var(--color-text-muted);text-decoration:line-through}.recipe-body__steps{flex-direction:column;gap:18px;margin:4px 0 0;padding:0;list-style:none;display:flex}.recipe-body__steps li{gap:14px;display:flex}.recipe-body__step-number{background:var(--color-text);color:#fff;border-radius:50%;flex:none;justify-content:center;align-items:center;width:28px;height:28px;font-size:13px;font-weight:700;display:flex}.recipe-body__steps p{margin:0;padding-top:3px;font-size:15px;line-height:1.55}@media (width<=1023px){.recipe-body--columns{grid-template-columns:minmax(0,1fr);gap:28px}.recipe-body__heading{font-size:22px}.recipe-body__ingredients.is-checkable>li{border-color:var(--color-border)}.recipe-body__steps{gap:20px}}.icon-button.favorite-button{color:var(--color-text-muted)}.icon-button.favorite-button:hover,.icon-button.favorite-button[aria-pressed=true]{color:var(--color-accent)}.change-meal{flex-direction:column;gap:24px;min-width:0;display:flex}.change-meal__tabs{background:var(--color-surface-sunk);border-radius:14px;align-self:flex-start;gap:4px;padding:5px;display:flex}.change-meal__tab,.change-meal__tab:hover{border-radius:var(--radius-sm);height:44px;color:var(--color-text-secondary);justify-content:center;align-items:center;gap:8px;padding:0 18px 0 14px;font-size:15px;font-weight:500;text-decoration:none;display:flex}.change-meal__tab:hover{color:var(--color-text)}.change-meal__tab.is-active{background:var(--color-surface);color:var(--color-text);box-shadow:var(--shadow-selected);font-weight:600}.change-meal__error{margin:0}@media (width<=1023px){.change-meal{gap:20px}.change-meal__tabs{border-radius:var(--radius-md);grid-template-columns:repeat(3,minmax(0,1fr));align-self:stretch;padding:4px;display:grid}.change-meal__tab,.change-meal__tab:hover{border-radius:9px;padding:0 6px;font-size:14px}}.save-notice{bottom:24px;right:0;left:var(--sidebar-width);z-index:50;pointer-events:none;justify-content:center;padding:0 16px;display:flex;position:fixed}.save-notice__message{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);max-width:480px;color:var(--color-error);margin:0;padding:12px 16px;font-size:14px;box-shadow:0 4px 14px #1e26201f}@media (width<=1023px){.save-notice{bottom:calc(16px + var(--tab-bar-height) + env(safe-area-inset-bottom));left:0}.app-layout--focused~.save-notice{bottom:calc(16px + env(safe-area-inset-bottom))}}.page-header{justify-content:space-between;align-items:flex-end;gap:24px;display:flex}.page-header__text{flex-direction:column;gap:12px;min-width:0;display:flex}.page-header__eyebrow,.page-header__title{margin:0}.page-header__description{max-width:640px;color:var(--color-text-muted);margin:-2px 0 0;font-size:16px;line-height:1.5}.page-header__actions{flex-direction:column;flex:none;align-items:flex-end;gap:10px;display:flex}@media (width<=1023px){.page-header{flex-direction:column;align-items:stretch;gap:20px}.page-header__text{gap:6px}.page-header__description{margin:0;font-size:15px}.page-header__actions{align-items:stretch}}.week-calendar{flex-direction:column;gap:12px;max-width:720px;display:flex}.week-calendar__toolbar{justify-content:space-between;align-items:center;gap:12px;display:flex}.week-calendar__month{font-family:var(--font-display);text-align:center;text-transform:capitalize;flex:1;font-size:22px;font-weight:400}.week-calendar__weekdays,.calendar-week{grid-template-columns:48px minmax(0,1fr) 110px;align-items:center;gap:12px;display:grid}.week-calendar__weekdays{color:var(--color-text-muted);letter-spacing:.08em;text-transform:uppercase;margin-top:4px;padding:0 16px;font-size:12px;font-weight:600}.week-calendar__weeks{gap:8px;margin:0;padding:0;list-style:none;display:grid}.calendar-week{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);width:100%;min-height:56px;color:var(--color-text);text-align:left;padding:10px 16px;transition:border-color .15s,box-shadow .15s}.calendar-week:hover:not(:disabled){border-color:var(--color-border-strong);box-shadow:var(--shadow-card-hover)}.calendar-week.is-active{border-color:var(--color-green);box-shadow:inset 0 0 0 1px var(--color-green)}.calendar-week.is-empty{border-style:dashed;border-color:var(--color-border-strong);color:var(--color-text-muted);cursor:default;background:0 0}.calendar-week__number{color:var(--color-text-muted);font-size:13px;font-weight:600}.calendar-week__days{text-align:center;grid-template-columns:repeat(7,minmax(0,1fr));gap:2px;display:grid}.calendar-day{padding:4px 0;font-size:14px}.calendar-day.is-outside{color:var(--color-placeholder);opacity:.6}.calendar-day.is-today{border-radius:var(--radius-pill);background:var(--color-green-soft);color:var(--color-green-soft-text);font-weight:700}.calendar-week__status{color:var(--color-text-muted);text-align:right;font-size:13px}.calendar-week.is-active .calendar-week__status{color:var(--color-green);font-weight:600}.week-calendar__legend{color:var(--color-text-muted);flex-wrap:wrap;align-items:center;gap:8px;margin:4px 0 0;font-size:13px;display:flex}.legend-swatch{border-radius:4px;width:14px;height:14px;display:inline-block}.legend-swatch--planned{border:1px solid var(--color-border);background:var(--color-surface)}.legend-swatch--empty{border:1px dashed var(--color-border-strong);margin-left:12px}@media (width<=1023px){.week-calendar__weekdays{display:none}.calendar-week{grid-template-columns:40px minmax(0,1fr);gap:6px 8px;padding:10px 12px}.calendar-week__days{gap:1px}.calendar-day{font-size:13px}.calendar-week__status{text-align:left;grid-column:1/-1}}.history-page{flex-direction:column;gap:28px;min-width:0;display:flex}.history-page>.empty-state,.history-page>.form-hint{margin:0}@media (width<=1023px){.history-page{gap:20px}}.add-field{gap:8px;width:100%;max-width:460px;display:flex}.add-field__input{flex:auto}.add-field__button{border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface);min-height:44px;color:var(--color-text);flex:none;padding:0 18px;font-size:14px;font-weight:600}.add-field__button:hover:not(:disabled){background:var(--color-chip)}.add-field__button:disabled{opacity:.5;cursor:not-allowed}@media (width<=1023px){.add-field{max-width:none}.add-field__button{min-height:48px;font-size:15px}}.form-section{border-top:1px solid var(--color-border);grid-template-columns:260px minmax(0,1fr);gap:48px;padding:28px 0;display:grid}.form-section:last-of-type{border-bottom:1px solid var(--color-border)}.form-section__intro{flex-direction:column;gap:6px;display:flex}.form-section__title{margin:0;font-size:20px;line-height:1.3}.form-section__description{color:var(--color-text-muted);margin:0;font-size:14px;line-height:1.5}.form-section__body{flex-direction:column;align-items:flex-start;gap:16px;min-width:0;display:flex}.form-section__body>*{max-width:100%}@media (width<=1023px){.form-section{grid-template-columns:minmax(0,1fr);gap:14px;padding:24px 0}.form-section__intro{gap:4px}.form-section__body{align-items:stretch}}.segmented-control{border-radius:var(--radius-md);background:var(--color-surface-sunk);gap:4px;max-width:100%;padding:4px;display:inline-flex}.segmented-control__option{min-height:44px;color:var(--color-text-secondary);background:0 0;border:0;border-radius:9px;padding:0 18px;font-size:14px;font-weight:500}.segmented-control__option:hover:not(.is-selected){color:var(--color-text)}.segmented-control__option.is-selected{background:var(--color-surface);color:var(--color-text);box-shadow:var(--shadow-selected);font-weight:600}.segmented-control--block{grid-template-columns:repeat(var(--segment-count), minmax(0, 1fr));width:100%;display:grid}.segmented-control--block .segmented-control__option{padding:0 6px}@media (width<=1023px){.segmented-control{grid-template-columns:repeat(var(--segment-mobile-columns), minmax(0, 1fr));width:100%;display:grid}.segmented-control__option{padding:0 6px}}.preferences-page{flex-direction:column;gap:24px;min-width:0;max-width:980px;display:flex}.preferences-page__sections{flex-direction:column;display:flex}.preferences-page__inline{align-items:center;gap:14px;display:flex}.preferences-page__unit{color:var(--color-text-muted);font-size:14px}.preferences-page__pills{flex-wrap:wrap;gap:8px;display:flex}.preferences-page__group{flex-direction:column;gap:8px;display:flex}.preferences-page__group-label{color:var(--color-text-secondary);font-size:13px;font-weight:600}.preferences-page__days{flex-wrap:wrap;gap:8px;display:flex}.preferences-page__day-letter{display:none}.preferences-page__proteins{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 32px;display:grid}.preferences-page__protein{justify-content:space-between;align-items:center;gap:16px;display:flex}.preferences-page__protein-name{flex-direction:column;gap:2px;min-width:0;font-size:15px;font-weight:500;display:flex}.preferences-page__protein-name>span{color:var(--color-text-muted);font-size:13px;font-weight:400}.preferences-page__protein-note{color:var(--color-text-muted);margin:0;font-size:14px}.preferences-page__budget{width:160px}.preferences-page__footer{border:1px solid var(--color-border);background:var(--color-surface);border-radius:14px;align-items:center;gap:12px;padding:14px 16px 14px 20px;display:flex}.preferences-page__note{color:var(--color-text-muted);flex:auto;margin:0;font-size:14px}.preferences-page>.form-error{margin:0}@media (width<=1023px){.preferences-page{gap:8px}.preferences-page__proteins{grid-template-columns:minmax(0,1fr)}.preferences-page__days{justify-content:space-between;gap:4px}.preferences-page__days .preferences-page__day{border-radius:50%;width:44px;min-width:44px;padding:0}.preferences-page__day-short{display:none}.preferences-page__day-letter{display:inline}.preferences-page__footer{background:0 0;border:0;flex-direction:column;align-items:stretch;gap:10px;padding:16px 0 0}.preferences-page__note{text-align:center;order:3}.preferences-page__generate{order:1}.preferences-page__save{order:2}}.recipe-form-page{flex-direction:column;gap:24px;min-width:0;display:flex}@media (width<=1023px){.recipe-form-page{gap:20px}}.confirm-dialog{gap:20px;display:grid}.confirm-dialog p{overflow-wrap:anywhere;color:var(--color-text-secondary);margin:0;font-size:15px;line-height:1.5}.confirm-dialog__actions{justify-content:flex-end;gap:10px;display:flex}.recipe-library-page{flex-direction:column;gap:28px;min-width:0;display:flex}.recipe-library-page__error{margin:0}.recipe-library-page .recipe-library{grid-template-columns:minmax(0,1fr)}.recipe-library-page .recipe-library__list{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}@media (width<=1023px){.recipe-library-page{gap:20px}.recipe-library-page .recipe-library__list{grid-template-columns:minmax(0,1fr)}}.info-bar{border-radius:var(--radius-md);background:var(--color-surface-sunk);color:var(--color-text-secondary);align-items:center;gap:12px;padding:12px 12px 12px 16px;font-size:14px;line-height:1.45;display:flex}.info-bar__content{flex-wrap:wrap;flex:auto;align-items:center;gap:8px;min-width:0;display:flex}.info-bar__action{flex:none}.info-bar__action a{align-items:center;gap:8px;min-height:44px;padding:0 8px;font-weight:600;display:inline-flex}@media (width<=1023px){.info-bar{padding:10px 8px 10px 14px}}.loading-animation{justify-content:center;align-items:center;width:100%;max-width:320px;height:320px;margin:20px auto;display:flex}.week-switcher{align-items:center;gap:10px;display:flex}.week-switcher__label{white-space:nowrap;margin:0}@media (width<=1023px){.week-switcher{gap:0;margin-left:-12px}.week-switcher__week{display:none}}.meal-details__intro{flex-direction:column;gap:6px;min-width:0;display:flex}.meal-details__eyebrow{margin:0}.meal-details__title{margin:0;font-size:32px;line-height:1.15}.meal-details__meta{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.meal-details--panel{border:1px solid var(--color-text);border-radius:var(--radius-lg);background:var(--color-surface);flex-direction:column;gap:24px;margin:6px 0 6px 124px;padding:28px 32px 32px;scroll-margin:24px;display:flex;position:relative;box-shadow:0 16px 40px #1e26201a}.meal-details__arrow{top:-9px;left:calc((100% + 12px) / var(--week-menu-columns,1) * var(--week-menu-open-column,0) + 48px);border-top:1px solid var(--color-text);border-left:1px solid var(--color-text);background:var(--color-surface);width:16px;height:16px;position:absolute;transform:rotate(45deg)}.meal-details__header{align-items:flex-start;gap:24px;display:flex}.meal-details__header>.meal-details__intro{flex:auto;gap:14px}.meal-details__header .meal-details__title{margin-top:-8px}.meal-details__actions{flex:none;gap:8px;display:flex}.meal-details__change-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.meal-details__change-label{color:var(--color-text-secondary);margin-right:4px;font-size:14px}.meal-details__rule{background:var(--color-border);border:0;height:1px;margin:0}.meal-details--screen{flex-direction:column;gap:22px;display:flex}.meal-details__back,.meal-details__back:hover{min-height:56px;color:var(--color-text);align-self:flex-start;align-items:center;gap:6px;margin:0 0 -18px -12px;padding:0 12px 0 8px;font-size:15px;font-weight:600;text-decoration:none;display:inline-flex}.meal-details--screen .meal-details__intro{gap:8px}.meal-details--screen .meal-details__title{font-size:30px}.meal-details__title-row{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.meal-details__title-row .favorite-button{margin:-5px -12px 0 0}.meal-details--screen .chip{min-height:32px}.meal-details__change{flex-direction:column;gap:10px;display:flex}.meal-details__tiles{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.meal-details__tile,.meal-details__tile:hover{border:1px solid var(--color-border-strong);background:var(--color-surface);height:68px;color:var(--color-text);border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:6px;font-size:13px;font-weight:600;text-decoration:none;display:flex}.meal-details__tile:hover{background:var(--color-chip)}.meal-details--screen .recipe-body{margin-top:6px}.meal-details__servings{margin:0 0 8px}.meal-details__servings--fixed{color:var(--color-text-muted);font-size:14px}.badge{border-radius:var(--radius-pill);font-family:var(--font-body);letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;align-items:center;padding:3px 8px;font-size:11px;font-weight:700;line-height:1.3;display:inline-flex}.badge--green{background:var(--color-green-soft);color:var(--color-green-soft-text)}.badge--accent{background:var(--color-accent-soft);color:var(--color-accent-text)}.week-menu__desktop,.week-menu__group{flex-direction:column;gap:10px;display:flex}.week-menu__row{align-items:stretch;gap:12px;display:flex}.week-menu__day{flex-direction:column;flex:none;justify-content:center;gap:4px;width:112px;padding-left:4px;display:flex}.week-menu__day-name{font-family:var(--font-display);align-items:center;gap:8px;font-size:20px;line-height:1.2;display:flex}.week-menu__date{color:var(--color-text-muted);font-size:13px}.week-menu__slots{grid-template-columns:repeat(var(--week-menu-columns,1), minmax(0, 1fr));flex:auto;gap:12px;min-width:0;display:grid}.week-menu__column-label{margin:0;padding-left:4px}.week-menu__slot{min-width:0;display:flex;position:relative}.week-menu__meal,.week-menu__meal:hover{color:var(--color-text);text-decoration:none}.week-menu__meal{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);text-align:left;flex-direction:column;flex:auto;align-items:flex-start;gap:10px;min-height:78px;padding:14px 16px;transition:border-color .15s,box-shadow .15s;display:flex}.week-menu__meal:hover{border-color:var(--color-border-strong);box-shadow:var(--shadow-card-hover)}.week-menu__meal.is-selected{border-color:var(--color-green);box-shadow:inset 0 0 0 1px var(--color-green)}.week-menu__meal-title{font-family:var(--font-display);font-size:16px;line-height:1.3}.week-menu__meta{color:var(--color-text-muted);flex:none;align-items:center;gap:6px;font-size:13px;display:flex}.week-menu__favorite{position:absolute;bottom:2px;right:4px}.week-menu__unplanned{border:1px dashed var(--color-border-strong);border-radius:var(--radius-md);min-height:78px;color:var(--color-text-muted);align-items:center;padding:0 16px;font-size:14px;display:flex}.week-menu__unplanned--day{grid-column:1/-1;min-height:56px}.week-menu__mobile{flex-direction:column;gap:12px;display:none}.week-menu__card-header{justify-content:space-between;align-items:center;gap:8px;min-height:44px;padding:0 16px;display:flex}.week-menu__card-title{align-items:baseline;gap:8px;margin:0;font-size:18px;display:flex}.week-menu__card-date{color:var(--color-text-muted);font-family:var(--font-body);font-size:14px}.week-menu__meal-row{border:0;border-top:1px solid var(--color-divider);text-align:left;background:0 0;align-items:center;gap:12px;width:100%;min-height:56px;padding:9px 12px 9px 16px;display:flex;position:relative}.week-menu__meal-row:hover{background:var(--color-chip)}.week-menu__meal-row-link{flex:auto;align-items:center;gap:12px;min-width:0;display:flex}.week-menu__meal-row-link,.week-menu__meal-row-link:hover{color:var(--color-text);text-decoration:none}.week-menu__meal-row-link:after{content:"";position:absolute;inset:0}.week-menu__meal-row-link:focus-visible{outline:none}.week-menu__meal-row-link:focus-visible:after{outline:var(--focus-ring);outline-offset:-2px}.week-menu__row-favorite{z-index:1;margin:0 -6px;position:relative}.week-menu__card{scroll-margin:16px}.week-menu__meal-row-text{flex-direction:column;flex:auto;gap:2px;min-width:0;display:flex}.week-menu__meal-type{margin:0}.week-menu__meal-row-title{font-weight:500;line-height:1.35}.week-menu__chevron{color:var(--color-text-muted);flex:none}.week-menu__card-unplanned{color:var(--color-text-muted);margin:0;padding:12px 16px;font-size:14px}@media (width<=1023px){.week-menu__desktop{display:none}.week-menu__mobile{display:flex}}.week-plan-page{flex-direction:column;gap:28px;min-width:0;display:flex}.week-plan-page>.form-hint,.week-plan-page>.form-error,.week-plan-page>.empty-state{margin:0}.week-plan-page__topline{justify-content:space-between;align-items:center;gap:12px;display:flex}.week-plan-page__household{display:none}.week-plan-page__meta,.week-plan-page__limit{color:var(--color-text-muted);margin:0;font-size:13px}.week-plan-page__pref-chips{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.week-plan-page__pref-label{margin-right:4px}.week-plan-page__pref-unknown{color:var(--color-text-muted)}.week-plan-page__pref-text,.week-plan-page__mobile-only{display:none}.generating-state{text-align:center;flex-direction:column;align-items:center;gap:8px;display:flex}.generating-state__message{color:var(--color-text-muted);margin:0;font-size:14px}@media (width<=1023px){.week-plan-page{gap:20px}.week-plan-page__household{align-items:center;min-height:44px;display:flex}.week-plan-page__meta,.week-plan-page__limit{text-align:center}.week-plan-page__pref-chips,.week-plan-page__desktop-only{display:none}.week-plan-page__pref-text{display:block}.week-plan-page__mobile-only{display:inline}}.offers-page{flex-direction:column;gap:24px;min-width:0;display:flex}.offers-page>.form-error,.offers-page>.form-hint,.offers-page>.empty-state{margin:0}.offers-page__filters{flex-direction:column;gap:16px;display:flex}.offers-page__search{max-width:520px;color:var(--color-text-muted);position:relative}.offers-page__search svg{pointer-events:none;position:absolute;top:50%;left:16px;transform:translateY(-50%)}.offers-page__search input{border-radius:var(--radius-md);height:48px;padding:0 16px 0 46px}.offers-page__stores{flex-wrap:wrap;gap:8px;display:flex}.offers-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;margin:0;padding:0;list-style:none;display:grid}.offer-card{flex-direction:column;gap:8px;height:100%;padding:20px;display:flex}.offer-card__head{justify-content:space-between;align-items:center;gap:8px;display:flex}.offer-card__store{margin:0}.offer-card__title{margin:0;font-size:18px;line-height:1.3}.offer-card__description{color:var(--color-text-muted);margin:0;font-size:14px}.offer-card__price{align-items:baseline;gap:8px;margin-top:auto;padding-top:8px;display:flex}.offer-card__price strong{font-size:20px;font-weight:700}.offer-card__price s,.offer-card__unit{color:var(--color-text-muted);font-size:13px}@media (width<=1023px){.offers-page{gap:16px}.offers-page__search{max-width:none}.offers-page__search svg{left:14px}.offers-page__search input{padding-left:44px}.offers-page__stores{scrollbar-width:none;flex-wrap:nowrap;margin:0 -20px;padding:0 20px;overflow-x:auto}.offers-page__stores>*{flex:none}.offers-grid{grid-template-columns:minmax(0,1fr);gap:10px}.offer-card{padding:16px}}.household-member{border-top:1px solid var(--color-border);grid-template-columns:40px minmax(0,1fr) auto 44px;align-items:center;gap:14px;padding:12px 0;display:grid}.household-member__identity{flex-direction:column;gap:2px;min-width:0;display:flex}.household-member__name{text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:600;overflow:hidden}.household-member__you{color:var(--color-text-muted);font-weight:400}.household-member__meta{color:var(--color-text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.household-member__role{font-size:14px;font-weight:600}.household-member__action{justify-content:flex-end;display:flex}.household-member__action .icon-button{color:var(--color-text-muted)}@media (width<=1023px){.household-member{grid-template-columns:40px minmax(0,1fr) auto auto;gap:12px}.household-member__role{font-size:13px}.household-member__action:empty{display:none}}.household-invite-card{background:var(--color-green-soft);border-radius:14px;flex-wrap:wrap;align-items:center;gap:14px;padding:16px;display:flex}.household-invite-card__icon{background:var(--color-surface);width:40px;height:40px;color:var(--color-green);border-radius:50%;flex:none;justify-content:center;align-items:center;display:flex}.household-invite-card__text{flex-direction:column;flex:200px;gap:2px;min-width:0;display:flex}.household-invite-card__text strong{color:var(--color-green-soft-text);font-size:15px;font-weight:600}.household-invite-card__text span{overflow-wrap:anywhere;color:var(--color-text-secondary);font-size:13px}.household-invite-card__actions{gap:8px;display:flex}.household-invite-card__accept.button--secondary,.household-invite-card__accept.button--secondary:hover:not(:disabled){border-color:var(--color-green);background:var(--color-green);color:#fff}@media (width<=1023px){.household-invite-card__actions{width:100%}.household-invite-card__actions>*{flex:1 1 0}}.household-panel{flex-direction:column;gap:28px;padding:28px;display:flex}.household-panel__header{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.household-panel__intro{flex-direction:column;gap:6px;min-width:0;display:flex}.household-panel__intro h2{overflow-wrap:anywhere;margin:0;font-size:26px}.household-panel__intro p{color:var(--color-text-muted);margin:0;font-size:15px}.household-panel__rename.button--md{gap:8px;min-height:40px;padding:0 16px 0 12px}.household-panel__rename-icon{display:none}.household-panel__group{flex-direction:column;gap:8px;display:flex}.household-panel__label{color:var(--color-text-muted);font-family:var(--font-body);letter-spacing:.08em;text-transform:uppercase;margin:0;font-size:12px;font-weight:600}.household-panel__list{margin:0;padding:0;list-style:none}.household-panel__list>li:last-child{border-bottom:1px solid var(--color-border)}.household-panel__pending{border-top:1px solid var(--color-border);grid-template-columns:40px minmax(0,1fr);align-items:center;gap:14px;padding:12px 0;display:grid}.household-panel__pending-icon{border:1.5px dashed var(--color-border-strong);width:40px;height:40px;color:var(--color-text-muted);border-radius:50%;justify-content:center;align-items:center;display:flex}.household-panel__pending-text{flex-direction:column;gap:2px;min-width:0;display:flex}.household-panel__pending-text>span:first-child{text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:600;overflow:hidden}.household-panel__pending-text>span:last-child{color:var(--color-text-muted);font-size:13px}.household-panel__invite{background:var(--color-bg);border-radius:14px;flex-direction:column;gap:12px;padding:20px;display:flex}.household-panel__invite h3{margin:0;font-size:19px}.household-panel__invite-row{gap:10px;display:flex}.household-panel__invite-row .field-control{flex:auto}.household-panel__invite p{color:var(--color-text-muted);margin:0;font-size:13px;line-height:1.5}.household-panel__error{margin:0}@media (width<=1023px){.household-panel{gap:20px;padding:20px}.household-panel__header{align-items:center}.household-panel__intro h2{font-size:22px}.household-panel__intro p{font-size:14px}.household-panel__rename{display:none}.household-panel__rename-icon{display:inline-flex}.household-panel__invite{padding:16px}.household-panel__invite-row{flex-direction:column}}.profile-settings-form{flex-direction:column;gap:20px;display:flex}.profile-settings-form__actions{justify-content:flex-end;gap:10px;display:flex}.profile-page{flex-direction:column;gap:28px;min-width:0;display:flex}.profile-page__grid{grid-template-columns:340px minmax(0,1fr);align-items:start;gap:24px;display:grid}.profile-page__grid>.form-hint{margin:0}.profile-card{flex-direction:column;gap:24px;padding:28px;display:flex}.profile-card>.form-error{margin:0}.profile-card__identity{flex-direction:column;align-items:flex-start;gap:16px;display:flex}.profile-card__names{flex-direction:column;gap:4px;min-width:0;display:flex}.profile-card__names h2{overflow-wrap:anywhere;margin:0;font-size:26px}.profile-card__names span{overflow-wrap:anywhere;color:var(--color-text-muted);font-size:15px}.profile-card__facts{flex-direction:column;margin:0;font-size:14px;display:flex}.profile-card__facts>div{border-top:1px solid var(--color-border);justify-content:space-between;gap:12px;padding:12px 0;display:flex}.profile-card__facts>div:last-child{border-bottom:1px solid var(--color-border)}.profile-card__facts dt{color:var(--color-text-muted)}.profile-card__facts dd{overflow-wrap:anywhere;text-align:right;margin:0;font-weight:600}.profile-card__actions{flex-direction:column;gap:8px;display:flex}.profile-card__logout{border-radius:var(--radius-pill);height:44px;color:var(--color-accent-text);background:0 0;border:0;justify-content:center;align-items:center;gap:8px;font-size:14px;font-weight:600;display:flex}.profile-card__logout:hover{background:var(--color-accent-soft);color:var(--color-accent-text-hover)}@media (width<=1023px){.profile-page{gap:20px}.profile-page__grid{grid-template-columns:minmax(0,1fr);gap:20px}.profile-card{gap:16px;padding:20px}.profile-card__identity{flex-direction:row;align-items:center}.profile-card__avatar{--avatar-size:64px!important}.profile-card__names h2{font-size:22px}.profile-card__names span{font-size:14px}.profile-card__facts>div{padding:10px 0}.profile-card__actions{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}}.shopping-list{flex-direction:column;gap:24px;min-width:0;display:flex}.shopping-status{align-items:center;gap:32px;padding:18px 20px;display:flex}.shopping-status__latest{flex:none;align-items:center;gap:14px;width:380px;min-width:0;display:flex}.shopping-status__icon{background:var(--color-chip);width:44px;height:44px;color:var(--color-text-secondary);border-radius:50%;flex:none;justify-content:center;align-items:center;display:flex}.shopping-status__text{flex-direction:column;gap:3px;min-width:0;display:flex}.shopping-status__text strong{font-size:16px;font-weight:600}.shopping-status__text>span{color:var(--color-text-muted);font-size:14px}.shopping-status__progress{flex-direction:column;flex:auto;gap:8px;min-width:0;display:flex}.shopping-status__counts{justify-content:space-between;gap:12px;font-size:14px;display:flex}.shopping-status__counts strong{font-weight:700}.shopping-status__left{color:var(--color-text-muted)}.shopping-status__bar{border-radius:var(--radius-pill);background:var(--color-surface-sunk);height:8px;overflow:hidden}.shopping-status__bar>span{border-radius:var(--radius-pill);background:var(--color-green);height:100%;transition:width .2s;display:block}.shopping-list__controls{justify-content:space-between;align-items:center;gap:24px;display:flex}.shopping-list__view{align-items:center;gap:16px;display:flex}.shopping-list__view-note{color:var(--color-text-muted);font-size:14px}.shopping-list__groups{columns:3;column-gap:20px}.shopping-list__groups>.shopping-group{break-inside:avoid;margin-bottom:20px}.shopping-group__header{justify-content:space-between;align-items:center;gap:12px;min-height:58px;padding:10px 18px;display:flex}.shopping-group__heading{flex-direction:column;gap:2px;min-width:0;display:flex}.shopping-group__heading h2{margin:0;font-size:19px;line-height:1.25}.shopping-group__heading span{color:var(--color-text-muted);font-size:13px;line-height:1.35}.shopping-group__count{color:var(--color-text-muted);flex:none;font-size:13px;font-weight:600}.shopping-group__toggle{flex:none;gap:6px;padding:0 12px 0 14px;font-size:13px}.shopping-group__toggle svg{transition:transform .15s}.shopping-group__toggle svg.is-open{transform:rotate(180deg)}.shopping-group__items{border-top:1px solid var(--color-divider);margin:0;padding:0;list-style:none}.shopping-group__items>li+li{border-top:1px solid var(--color-divider)}.shopping-group__empty{color:var(--color-text-muted);padding:16px 18px;font-size:14px}.shopping-row{cursor:pointer;align-items:center;gap:12px;min-height:56px;padding:8px 16px 8px 18px;display:flex}.shopping-row:hover{background:#f8f3ea}.shopping-row__check{width:20px;height:20px;accent-color:var(--color-green);cursor:inherit;flex:none;margin:0}.shopping-row__text{flex-direction:column;flex:auto;gap:3px;min-width:0;display:flex}.shopping-row__name{font-size:15px;font-weight:500;line-height:1.3}.shopping-row__meta{color:var(--color-text-muted);align-items:center;gap:6px;font-size:13px;line-height:1.35;display:flex}.shopping-row__amount{text-align:right;flex:none;font-size:14px;font-weight:600}.shopping-row.is-checked .shopping-row__name,.shopping-row.is-checked .shopping-row__amount{color:var(--color-text-muted)}.shopping-row.is-checked .shopping-row__name{text-decoration:line-through}@media (width<=1279px){.shopping-list__groups{columns:2}}@media (width<=1023px){.shopping-list{gap:16px}.shopping-status{flex-direction:column;align-items:stretch;gap:14px;padding:16px}.shopping-status__latest{gap:12px;width:auto}.shopping-status__text>span{font-size:13px;line-height:1.35}.shopping-list__controls,.shopping-list__view{flex-direction:column;align-items:stretch;gap:8px}.shopping-list__view-note{font-size:13px}.shopping-list__groups{columns:1}.shopping-list__groups>.shopping-group{margin-bottom:16px}}.shopping-list-page{flex-direction:column;gap:24px;min-width:0;display:flex}.shopping-list-page>.empty-state,.shopping-list-page>.form-hint{margin:0}@media (width<=1023px){.shopping-list-page{gap:16px}}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:var(--font-display);letter-spacing:0;font-weight:400}h1{letter-spacing:-.01em;margin-bottom:18px;font-size:44px;line-height:1.1}.eyebrow{color:var(--color-text-muted);letter-spacing:.08em;text-transform:uppercase;margin:0 0 10px;font-size:12px;font-weight:600;line-height:1.2}.section-heading{justify-content:space-between;align-items:center;gap:20px;display:flex}.section-heading h2{margin:0;font-size:22px}.quiet-button{border:1px solid var(--color-border-strong);border-radius:var(--radius-pill);background:var(--color-surface);min-height:40px;color:var(--color-text);justify-content:center;align-items:center;gap:6px;padding:0 16px;font-size:14px;font-weight:600;display:inline-flex}.quiet-button:hover:not(:disabled){background:var(--color-chip)}.quiet-button:disabled{opacity:.5;cursor:not-allowed}.tab-panel{max-width:900px}.tab-panel h2{margin:0;font-size:32px}.tab-intro{color:var(--color-text-muted);margin:10px 0 0;font-size:15px}.empty-state{border:1px dashed var(--color-border-strong);border-radius:var(--radius-lg);background:var(--color-surface);align-items:center;gap:18px;min-height:180px;margin-top:20px;padding:28px;display:flex}.empty-state__mark{background:var(--color-green-soft);width:44px;height:44px;color:var(--color-green-soft-text);border-radius:50%;flex:none;place-items:center;font-size:12px;font-weight:700;display:grid}.empty-state h3{margin:0 0 6px;font-size:22px}.empty-state p{max-width:440px;color:var(--color-text-muted);margin:0;font-size:14px;line-height:1.5}.form-error{color:var(--color-error);margin:12px 0 0;font-size:14px}.form-hint{color:var(--color-text-muted);margin:12px 0 0;font-size:14px}.auth-loading{min-height:100svh;color:var(--color-text-muted);place-items:center;font-size:14px;display:grid}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media (width<=1023px){h1{font-size:32px;line-height:1.15}.section-heading{gap:12px}.section-heading h2{font-size:20px}.tab-panel h2{font-size:26px}}
