:root{--color-canvas: #fbfaf8;--color-surface: #ffffff;--color-ink: #241b18;--color-muted: #625d59;--color-accent: #c2462a;--color-accent-hover: #a93b23;--color-accent-soft: #fbf0ec;--color-sage: #5f7b4b;--color-border: #e5e0dc;--color-footer: #2b211d;--font-serif: Iowan Old Style, Baskerville, "Times New Roman", Georgia, serif;--font-sans: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.5rem;--space-6: 2rem;--space-7: 3rem;--space-8: 4rem;--space-9: 5rem;--space-10: 7rem;--radius-control: .5rem;--radius-media: .75rem;--radius-round: 999px;--shadow-elevated: 0 8px 24px rgb(36 27 24 / 14%);--focus-ring: 0 0 0 3px rgb(194 70 42 / 35%);--content-width: 82rem;--reading-width: 48rem;--breakpoint-tablet: 64rem;--breakpoint-phone: 48rem;--breakpoint-safety: 22rem}*,*:before,*:after{box-sizing:border-box}html{color:var(--color-ink);background:var(--color-canvas);font-family:var(--font-sans);line-height:1.5;scroll-behavior:smooth;scroll-padding-top:5rem;text-size-adjust:100%}body{margin:0;min-height:100vh;background:var(--color-canvas)}button,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration-thickness:.08em;text-underline-offset:.2em}img,svg{display:block;max-width:100%}h1,h2,h3,p{margin-block-start:0}h1,h2,h3,.brand{font-family:var(--font-serif);font-weight:500}h1,h2,h3{text-wrap:balance}p{color:var(--color-muted)}:focus-visible{border-radius:var(--radius-control);outline:2px solid var(--color-accent);outline-offset:3px;box-shadow:var(--focus-ring)}.content-width{width:100%;max-width:calc(var(--content-width) + 4rem);margin-inline:auto;padding-left:max(2rem,env(safe-area-inset-left));padding-right:max(2rem,env(safe-area-inset-right))}@media(max-width:48rem){.content-width{max-width:calc(var(--content-width) + 3rem);padding-left:max(1.5rem,env(safe-area-inset-left));padding-right:max(1.5rem,env(safe-area-inset-right))}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.button,.icon-button{min-height:2.75rem;border-radius:var(--radius-control);font-weight:650;line-height:1.2}.button{display:inline-flex;align-items:center;justify-content:center;padding:.78rem 1.35rem;border:1px solid transparent;text-decoration:none}.button--primary,.button--destructive{border-color:var(--color-accent);color:var(--color-surface);background:var(--color-accent)}.text-link{min-height:2.75rem;display:inline-flex;align-items:center;color:var(--color-accent);font-weight:650}.icon-button{width:2.75rem;padding:.55rem;border:1px solid var(--color-accent);color:var(--color-accent);background:var(--color-surface)}.inline-action,.outline-action{display:inline-flex;align-items:center;gap:var(--space-2)}.inline-action{min-height:2.75rem;color:var(--color-accent)}.inline-action svg,.outline-action svg{width:1.1rem}@media(hover:hover){.button--primary:hover{border-color:var(--color-accent-hover);background:var(--color-accent-hover)}}.app-shell{min-height:100vh;background:var(--color-canvas)}.app-shell__application{min-height:100vh}.app-shell__application[data-modal-fallback=true]:after{position:fixed;z-index:30;top:0;right:0;bottom:0;left:0;background:#241b1861;pointer-events:auto;content:""}.app-shell__body{min-width:0}.app-header{position:sticky;z-index:10;top:0;min-height:7rem;display:grid;grid-template-columns:2.75rem minmax(0,1fr) 2.75rem;align-items:center;gap:var(--space-3);padding:max(var(--space-4),env(safe-area-inset-top)) max(var(--space-5),env(safe-area-inset-right)) var(--space-4) max(var(--space-5),env(safe-area-inset-left));border-bottom:1px solid var(--color-border);background:var(--color-surface)}.app-header__title{min-width:0;text-align:center}.app-header__title h1{overflow:hidden;margin:0;font-size:clamp(1.7rem,8vw,2rem);line-height:1.08;text-overflow:ellipsis;white-space:nowrap}.app-header__title>span{display:block;margin-top:var(--space-1);color:var(--color-ink);font-size:1.05rem}.app-header__icon svg{width:1.5rem;height:1.5rem}.app-shell__main{min-height:calc(100vh - 7rem);padding:var(--space-6) max(var(--space-5),env(safe-area-inset-right)) calc(7rem + env(safe-area-inset-bottom)) max(var(--space-5),env(safe-area-inset-left))}.app-content-state{width:min(100%,36rem);margin:clamp(3rem,14vh,8rem) auto 0;text-align:center}.app-content-state h2{margin-bottom:var(--space-2);font-size:1.8rem}.app-content-state--selected{padding-block:var(--space-7);border-block:1px solid var(--color-border)}.app-content-state--selected .button{margin-top:var(--space-4)}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}.meal-plan{width:min(100%,64rem);margin-inline:auto}.meal-plan__toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-6)}.meal-view-switch{display:inline-grid;grid-template-columns:repeat(2,1fr);padding:.2rem;border:1px solid var(--color-border);border-radius:var(--radius-round);background:var(--color-surface)}.meal-view-switch button{min-height:2.5rem;padding:var(--space-2) var(--space-5);border:0;border-radius:var(--radius-round);color:var(--color-muted);background:transparent;font-weight:650}.meal-view-switch button[aria-pressed=true]{color:var(--color-surface);background:var(--color-accent)}.meal-plan__bounded-state{width:min(100%,38rem);margin:clamp(2rem,10vh,6rem) auto 0;text-align:center}.meal-plan__loading{width:min(100%,64rem);margin:clamp(2rem,10vh,6rem) auto 0}.meal-plan__bounded-state h2{margin-bottom:var(--space-2);font-size:1.75rem}.meal-plan__bounded-state .button{margin-top:var(--space-3)}.meal-days{display:grid;gap:var(--space-7)}.meal-day h2{margin-bottom:var(--space-3);color:var(--color-muted);font-family:var(--font-sans);font-size:.84rem;font-weight:750;letter-spacing:.08em;text-transform:uppercase}.meal-day__items{display:grid;gap:var(--space-3)}.meal-card{overflow:hidden;border:1px solid var(--color-border);border-radius:var(--radius-media);background:var(--color-surface)}.meal-card__link{display:grid;gap:var(--space-3);padding:var(--space-5);text-decoration:none}.meal-card__heading,.meal-card__meta{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4)}.meal-card time,.meal-card__meta{color:var(--color-muted);font-size:.88rem}.meal-card h3{margin:var(--space-1) 0 0;font-size:1.35rem}.meal-card__notes{margin:0}.meal-card__cancelled{padding:var(--space-1) var(--space-3);border-radius:var(--radius-round);color:var(--color-accent);background:var(--color-accent-soft);font-size:.78rem;font-weight:700}.meal-card__categories{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--space-2);margin:0;padding:0;list-style:none}.meal-card__categories li{padding:var(--space-1) var(--space-2);border-radius:var(--radius-round);color:var(--color-sage);background:color-mix(in srgb,var(--color-sage) 10%,var(--color-surface))}.meal-card__cancel{min-height:2.75rem;width:100%;border:0;border-top:1px solid var(--color-border);color:var(--color-accent);background:var(--color-surface);font-weight:650}.meal-plan__skeletons{display:grid;gap:var(--space-3)}.meal-card--skeleton{min-height:8.75rem;display:grid;gap:var(--space-3);padding:var(--space-5)}.meal-card--skeleton span{width:45%;height:.8rem;border-radius:var(--radius-round);background:var(--color-border)}.meal-card--skeleton span:nth-child(2){width:72%;height:1.4rem}.meal-card--skeleton span:nth-child(3){width:58%}@media(max-width:30rem){.meal-plan__toolbar{align-items:stretch;flex-direction:column}.meal-view-switch,.meal-plan__toolbar>.button{width:100%}}.app-fab{position:fixed;z-index:20;right:max(var(--space-5),env(safe-area-inset-right));bottom:max(var(--space-5),calc(env(safe-area-inset-bottom) + var(--space-4)));width:4.25rem;height:4.25rem;display:grid;place-items:center;padding:0;border:1px solid var(--color-accent);border-radius:var(--radius-round);color:var(--color-surface);background:var(--color-accent);box-shadow:var(--shadow-elevated)}.app-fab svg{width:2rem;height:2rem}.group-navigation{display:flex;flex-direction:column;align-items:stretch}.group-navigation__brand{width:fit-content;margin-bottom:var(--space-7);font-family:var(--font-serif);font-size:2rem;line-height:1;text-decoration:none}.group-navigation h2{margin:0 0 var(--space-3);font-family:var(--font-sans);font-size:.8rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.group-navigation__list{display:grid}.group-navigation__item{position:relative;min-height:3.25rem;display:flex;align-items:center;padding:var(--space-3) var(--space-4);border-radius:var(--radius-control);text-decoration:none}.group-navigation__item[aria-current=page]{color:var(--color-accent);background:var(--color-accent-soft)}.group-navigation__item[aria-current=page]:before{position:absolute;inset:0 auto 0 0;width:3px;border-radius:3px;background:var(--color-accent);content:""}.group-navigation__create{min-height:3.25rem;display:flex;align-items:center;justify-content:flex-start;gap:var(--space-3);margin-top:var(--space-5);padding:var(--space-3) var(--space-4);border:1px solid var(--color-accent);border-radius:var(--radius-control);color:var(--color-accent);background:var(--color-surface)}.group-navigation__create svg{width:1.25rem}.group-navigation__create:disabled{border-color:var(--color-border);color:var(--color-muted);cursor:not-allowed}.group-navigation__offline{margin:var(--space-2) var(--space-4) 0;font-size:.85rem}.app-refresh-warning{min-height:2.75rem;display:flex;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-2) var(--space-5);border-bottom:1px solid var(--color-border);color:var(--color-muted);background:var(--color-accent-soft)}.app-refresh-warning button{min-height:2.25rem;border:0;color:var(--color-accent);background:transparent;font-weight:650}.offline-banner{min-height:3rem;display:flex;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-2) var(--space-5);border-bottom:1px solid var(--color-border);color:var(--color-ink);background:var(--color-accent-soft);font-size:.875rem}.offline-banner button{min-height:2.25rem}.app-dialog{position:fixed;z-index:40;top:0;right:0;bottom:0;left:0;max-width:none;max-height:none;margin:auto;padding:0;border:1px solid var(--color-border);color:var(--color-ink);background:var(--color-surface);box-shadow:var(--shadow-elevated)}.app-dialog::backdrop{background:#241b1861}.app-dialog__header,.group-drawer__header{min-height:4.5rem;display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);border-bottom:1px solid var(--color-border)}.app-dialog__header h2,.group-drawer__header h2{margin:0;font-size:1.5rem}.app-dialog__close{width:2.75rem;height:2.75rem;display:grid;place-items:center;padding:0;border:0;border-radius:var(--radius-control);color:var(--color-ink);background:transparent}.app-dialog__close svg{width:1.5rem}.group-drawer{inset:0 auto 0 0;width:min(88vw,22rem);height:100dvh;margin:0;padding:0 max(var(--space-5),env(safe-area-inset-left)) var(--space-5);border-width:0 1px 0 0}.group-drawer .group-navigation{padding-top:var(--space-6)}.group-drawer .group-navigation__brand,.group-drawer .group-navigation>h2{display:none}.create-group-dialog{width:min(calc(100% - 2rem),30rem);height:fit-content;border-radius:var(--radius-media)}.create-group-dialog .app-dialog__header,.create-group-dialog form{padding:var(--space-5)}.create-group-dialog form{display:grid;gap:var(--space-3)}.create-group-dialog label{font-weight:650}.create-group-dialog input{min-height:2.75rem;width:100%;padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-control);color:var(--color-ink);background:var(--color-surface)}.create-group-dialog [role=alert]{margin:0;color:var(--color-accent)}.meal-form-dialog{width:min(calc(100% - 2rem),42rem);max-height:min(90dvh,54rem);border-radius:var(--radius-media)}.meal-form-dialog .app-dialog__header,.meal-form-dialog form,.confirm-dialog .app-dialog__header,.confirm-dialog__content{padding:var(--space-5)}.meal-form-dialog form,.meal-form-dialog__fields,.meal-form-dialog__recurrence-options{display:grid;gap:var(--space-3)}.meal-form-dialog form{overflow-y:auto;max-height:calc(min(90dvh,54rem) - 4.5rem)}.meal-form-dialog label,.meal-form-dialog legend{font-weight:650}.meal-form-dialog fieldset{min-width:0;display:grid;gap:var(--space-3);margin:0;padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-control)}.meal-form-dialog input,.meal-form-dialog select,.meal-form-dialog textarea{min-height:2.75rem;width:100%;padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-control);color:var(--color-ink);background:var(--color-surface)}.meal-form-dialog textarea{resize:vertical}.weekday-picker>div{display:grid;grid-template-columns:repeat(7,minmax(2.5rem,1fr));gap:var(--space-2)}.weekday-picker button{min-height:2.75rem;padding:var(--space-1);border:1px solid var(--color-border);border-radius:var(--radius-round);color:var(--color-muted);background:var(--color-surface)}.weekday-picker button[aria-pressed=true]{border-color:var(--color-accent);color:var(--color-surface);background:var(--color-accent)}.meal-form-dialog__hint,.meal-form-dialog [role=status],.meal-form-dialog__error,.confirm-dialog [role=alert]{margin:0}.meal-form-dialog__hint,.meal-form-dialog [role=status]{color:var(--color-muted)}.meal-form-dialog__error,.meal-form-dialog__field-error,.confirm-dialog [role=alert]{color:var(--color-accent)}.meal-form-dialog__field-error{margin:calc(var(--space-2) * -1) 0 0;font-size:.88rem}.meal-detail{width:min(100%,64rem);margin-inline:auto}.meal-detail__back{margin-bottom:var(--space-5);text-decoration:none}.meal-detail__header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-6);padding-bottom:var(--space-7);border-bottom:1px solid var(--color-border)}.meal-detail__header h1{margin:var(--space-1) 0 var(--space-2);font-size:clamp(2rem,8vw,3rem);line-height:1.05}.meal-detail__date,.meal-detail__notes{margin:0;color:var(--color-muted)}.meal-detail__header>.button{flex:0 0 auto;gap:var(--space-2)}.meal-detail__header>.button svg,.dish-card__recipe svg{width:1.1rem}.meal-detail__bounded-state,.meal-detail__empty,.meal-detail__loading{width:min(100%,38rem);margin:clamp(2rem,10vh,6rem) auto 0;text-align:center}.meal-detail__bounded-state .button{margin-top:var(--space-3)}.meal-detail__loading{display:grid;gap:var(--space-3)}.meal-detail__loading span{height:5rem;border:1px solid var(--color-border);border-radius:var(--radius-media);background:var(--color-surface)}.dish-groups{display:grid;gap:var(--space-7);padding-top:var(--space-7)}.dish-group>h2{margin-bottom:var(--space-3);color:var(--color-muted);font-family:var(--font-sans);font-size:.84rem;letter-spacing:.08em;text-transform:uppercase}.dish-group__items{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,20rem),1fr));gap:var(--space-3)}.dish-card{display:grid;align-content:start;gap:var(--space-3);padding:var(--space-5);border:1px solid var(--color-border);border-radius:var(--radius-media);background:var(--color-surface)}.dish-card__heading{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3)}.dish-card h3,.dish-card p{margin:0}.dish-card__heading p{margin-top:var(--space-1);color:var(--color-muted);font-size:.9rem}.dish-card__actions{display:flex;gap:var(--space-2)}.dish-card__tags{display:flex;flex-wrap:wrap;gap:var(--space-2);margin:0;padding:0;list-style:none}.dish-card__tags li{padding:var(--space-1) var(--space-3);border-radius:var(--radius-round);color:var(--color-accent);background:var(--color-accent-soft);font-size:.82rem;font-weight:650}.dish-card__recipe{width:fit-content;gap:var(--space-2)}.dish-form-dialog{width:min(calc(100% - 2rem),38rem);max-height:min(90dvh,50rem);border-radius:var(--radius-media)}.dish-form-dialog .app-dialog__header,.dish-form-dialog form{padding:var(--space-5)}.dish-form-dialog form,.dish-form-dialog__fields{display:grid;gap:var(--space-3)}.dish-form-dialog form{overflow-y:auto;max-height:calc(min(90dvh,50rem) - 4.5rem)}.dish-form-dialog label,.dish-form-dialog legend{font-weight:650}.dish-form-dialog input,.dish-form-dialog select,.dish-form-dialog textarea{min-height:2.75rem;width:100%;padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-control);color:var(--color-ink);background:var(--color-surface)}.dish-form-dialog textarea{min-height:7rem;resize:vertical}.dish-form-dialog__tags{display:flex;flex-wrap:wrap;gap:var(--space-2);margin:0;padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-control)}.dish-form-dialog__tags label{display:inline-flex;align-items:center;gap:var(--space-2)}.dish-form-dialog__tags input{min-height:auto;width:auto}.dish-form-dialog__field-error,.dish-form-dialog__server-error{margin:calc(var(--space-2) * -1) 0 0;color:var(--color-accent);font-size:.88rem}.dish-form-dialog [role=status]{margin:0;color:var(--color-muted)}.confirm-dialog{width:min(calc(100% - 2rem),30rem);height:fit-content;border-radius:var(--radius-media)}.confirm-dialog{padding:var(--space-5)}.confirm-dialog h2,.confirm-dialog p{margin-top:0}.confirm-dialog__actions{display:flex;justify-content:flex-end;gap:var(--space-3);margin-top:var(--space-5)}.settings-page{width:min(100%,50rem);display:grid;gap:var(--space-5);margin-inline:auto}.settings-page__header,.member-list li,.settings-page__inline-form{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.settings-page__header h2,.settings-page__header p,.settings-card h3,.member-list{margin:0}.eyebrow{color:var(--color-muted);font-size:.8rem;font-weight:750;letter-spacing:.08em;text-transform:uppercase}.settings-card{display:grid;gap:var(--space-4);padding:var(--space-5);border:1px solid var(--color-border);border-radius:var(--radius-media);background:var(--color-surface)}.settings-card form{display:grid;gap:var(--space-2)}.settings-card label{font-weight:650}.settings-page__inline-form input{min-height:2.75rem;min-width:0;flex:1;padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-control)}.member-list{display:grid;gap:var(--space-3);padding:0;list-style:none}.member-list li+li{padding-top:var(--space-3);border-top:1px solid var(--color-border)}.role-badge{display:inline-block;margin-left:var(--space-2);padding:var(--space-1) var(--space-2);border-radius:var(--radius-round);color:var(--color-sage);background:color-mix(in srgb,var(--color-sage) 12%,var(--color-surface));font-size:.75rem;font-weight:700}.form-error,.offline-note{margin:0;color:var(--color-accent)}.toast-region{position:fixed;z-index:25;right:var(--space-5);bottom:var(--space-5);max-width:min(24rem,calc(100vw - 2rem));padding:var(--space-3) var(--space-4);border-radius:var(--radius-control);color:var(--color-surface);background:var(--color-ink);box-shadow:var(--shadow-elevated)}@media(max-width:34rem){.offline-banner{align-items:flex-start;flex-direction:column}.settings-page__inline-form,.member-list li{align-items:stretch;flex-direction:column}}.invite-dialog{width:min(calc(100% - 2rem),34rem);height:fit-content;border-radius:var(--radius-media)}.invite-dialog .app-dialog__header,.invite-dialog__content{padding:var(--space-5)}.invite-dialog__content{display:grid;gap:var(--space-3)}.invite-dialog__content label{font-weight:650}.invite-dialog__content input{min-height:2.75rem;width:100%;padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-control);color:var(--color-ink);background:var(--color-surface)}.invite-dialog__content .qr-figure{margin-inline:auto}.invite-dialog__announcement:empty{display:none}.app-dialog__actions{display:flex;justify-content:flex-end;gap:var(--space-3);margin-top:var(--space-3)}@media(min-width:64rem){.app-shell__application{display:grid;grid-template-columns:minmax(17rem,20rem) minmax(0,1fr)}.app-shell__sidebar{position:sticky;top:0;height:100vh;padding:var(--space-7) var(--space-5);border-right:1px solid var(--color-border);background:var(--color-surface)}.app-header{min-height:7.75rem;grid-template-columns:minmax(0,1fr) 2.75rem;padding:var(--space-5) var(--space-6)}.app-header__title{text-align:left}.app-header__title h1{font-size:2.35rem}.app-shell__main{min-height:calc(100vh - 7.75rem);padding:var(--space-7) var(--space-6) var(--space-9)}.app-fab{right:var(--space-6);bottom:var(--space-6)}}@media(max-width:40rem){.meal-detail__header{flex-direction:column}.meal-detail__header>.button{width:100%}}@media(hover:hover){.group-navigation__item:hover{background:var(--color-accent-soft)}.app-fab:hover{border-color:var(--color-accent-hover);background:var(--color-accent-hover)}}.site-shell{min-height:100vh}.public-header{position:sticky;z-index:20;top:0;padding-top:env(safe-area-inset-top);border-bottom:1px solid var(--color-border);background:#fffffff5;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.public-header__inner{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;width:100%;max-width:calc(var(--content-width) + 4rem);min-height:4.75rem;margin-inline:auto;padding-left:max(2rem,env(safe-area-inset-left));padding-right:max(2rem,env(safe-area-inset-right));gap:var(--space-6)}.brand{display:inline-flex;align-items:center;min-width:2.75rem;min-height:2.75rem;width:fit-content;font-size:1.9rem;line-height:1;text-decoration:none}.public-header__nav,.public-header__actions,.public-footer nav,.bounded-state>div{display:flex;align-items:center}.public-header__nav{gap:var(--space-6)}.public-header__nav a,.public-header__sign-in,.public-footer a,.mobile-navigation a{min-height:2.75rem;display:inline-flex;align-items:center;font-size:1rem;text-decoration:none}.public-header__actions{justify-content:flex-end;gap:var(--space-5)}.public-header__menu-button,.mobile-navigation{display:none}.public-section{padding-block:var(--space-10);border-bottom:1px solid var(--color-border)}.public-section--surface{background:var(--color-surface)}.public-footer{padding-top:var(--space-6);padding-bottom:max(var(--space-6),env(safe-area-inset-bottom));color:var(--color-surface);background:var(--color-footer)}.public-footer__inner{display:flex;align-items:center;justify-content:space-between;width:100%;max-width:calc(var(--content-width) + 4rem);margin-inline:auto;padding-left:max(2rem,env(safe-area-inset-left));padding-right:max(2rem,env(safe-area-inset-right))}.brand--footer{font-size:2.1rem}.public-footer p{margin:var(--space-2) 0 0;color:var(--color-surface)}.public-footer nav{gap:var(--space-6)}.prose-page,.bounded-state{padding-block:clamp(4rem,9vw,7rem)}.prose-page{max-width:calc(var(--reading-width) + 4rem)}.prose-page__header{margin-bottom:var(--space-8)}.prose-page h1,.bounded-state h1{margin-bottom:var(--space-4);font-size:clamp(3.4rem,7vw,5rem);line-height:1;letter-spacing:-.04em}.prose-page__header p,.bounded-state>p{font-size:1.22rem}.prose-page section{padding-block:var(--space-5);border-top:1px solid var(--color-border);scroll-margin-top:6rem}.prose-page h2{margin-bottom:var(--space-3);font-size:2rem;line-height:1.15}.prose-page p{font-size:1.05rem}.bounded-state{min-height:55vh;max-width:48rem}.bounded-state>div{gap:var(--space-5);margin-top:var(--space-6)}.auth-page__form{display:grid;width:min(100%,30rem);gap:var(--space-5);margin-top:var(--space-6)}.auth-page__field{display:grid;gap:var(--space-2)}.auth-page__form input,.auth-page__form .button{width:100%}.auth-page__form input{min-height:2.75rem;padding:.78rem 1rem;border:1px solid var(--color-border);border-radius:var(--radius-control);color:var(--color-ink);background:var(--color-surface)}.auth-page__form+p{margin-top:var(--space-5)}@media(hover:hover){.public-header a:hover,.public-footer a:hover{text-decoration:underline}}@media(max-width:64rem){.public-header__inner{grid-template-columns:1fr auto}.public-header__nav,.public-header__sign-in{display:none}.public-header__menu-button{display:block}.mobile-navigation{display:grid;width:100%;max-width:calc(var(--content-width) + 4rem);margin-inline:auto;padding-block:var(--space-2) var(--space-4);padding-left:max(2rem,env(safe-area-inset-left));padding-right:max(2rem,env(safe-area-inset-right));border-top:1px solid var(--color-border)}.mobile-navigation a{border-bottom:1px solid var(--color-border)}}@media(max-width:48rem){.public-header__inner{max-width:calc(var(--content-width) + 3rem);min-height:4.25rem;padding-left:max(1.5rem,env(safe-area-inset-left));padding-right:max(1.5rem,env(safe-area-inset-right));gap:var(--space-3)}.brand{font-size:1.7rem}.public-header__actions{gap:var(--space-3)}.public-header__actions .button{padding-inline:1rem}.mobile-navigation{max-width:calc(var(--content-width) + 3rem);padding-left:max(1.5rem,env(safe-area-inset-left));padding-right:max(1.5rem,env(safe-area-inset-right))}.public-section{padding-block:var(--space-8)}.public-footer__inner{align-items:flex-start;max-width:calc(var(--content-width) + 3rem);padding-left:max(1.5rem,env(safe-area-inset-left));padding-right:max(1.5rem,env(safe-area-inset-right));gap:var(--space-5)}.public-footer nav{gap:var(--space-4)}.public-footer__sign-in{display:none!important}.prose-page,.bounded-state{padding-block:var(--space-8)}}@media(max-width:22rem){.public-header__actions .button{padding-inline:.8rem}.public-footer__inner,.bounded-state>div{align-items:stretch;flex-direction:column}}.hero{padding-block:0;background:var(--color-surface)}.hero__inner{display:grid;grid-template-columns:minmax(27rem,.9fr) minmax(0,1.35fr);align-items:center;min-height:39rem;gap:var(--space-7)}.hero__copy{z-index:2;padding-block:var(--space-8)}.hero h1{max-width:none;margin-bottom:var(--space-5);font-size:clamp(3.6rem,4.8vw,3.75rem);line-height:1;letter-spacing:-.04em}.hero__copy>p{max-width:29rem;margin-bottom:var(--space-6);font-size:1.2rem;line-height:1.55}.hero__actions{display:flex;align-items:center;gap:var(--space-6)}.hero__actions .button{min-width:9rem}.hero__media{position:relative;align-self:stretch;min-height:36rem;overflow:hidden}.hero__media>picture{display:block;width:66%;height:100%;margin-left:auto}.hero__media>picture img{width:100%;height:100%;object-fit:cover;object-position:70% 50%;border-radius:0 0 var(--radius-media) var(--radius-media)}.hero__desktop-preview,.hero__phone-preview{position:absolute;z-index:2;top:3.2rem;left:0;overflow:hidden;border:1px solid var(--color-border);border-radius:var(--radius-media);background:var(--color-surface);box-shadow:var(--shadow-elevated)}.hero__desktop-preview{width:min(39rem,78%)}.hero__phone-preview{display:none}.section-split{display:grid;grid-template-columns:minmax(14rem,.7fr) minmax(28rem,1.6fr);align-items:start;gap:clamp(3rem,7vw,7.5rem)}.section-intro h2{max-width:13ch;margin-bottom:var(--space-4);font-size:clamp(2.55rem,4.2vw,3.5rem);line-height:1.07;letter-spacing:-.035em}.section-intro p{max-width:28rem;margin-bottom:var(--space-5);font-size:1.08rem}.workflow-steps{display:grid;grid-template-columns:repeat(3,1fr);margin:0;padding:0;list-style:none}.workflow-steps li{position:relative;display:grid;grid-template-columns:auto 2.25rem 1fr;align-items:start;gap:var(--space-3);padding:0 var(--space-5) var(--space-5) 0}.workflow-steps li:not(:last-child):after{position:absolute;top:1.35rem;right:.5rem;width:1.75rem;height:1px;content:"";background:var(--color-muted)}.workflow-steps__number{display:grid;width:2.5rem;height:2.5rem;place-items:center;border:1px solid var(--color-border);border-radius:var(--radius-round);background:var(--color-surface)}.workflow-steps svg{width:2rem;height:2rem;margin-top:.25rem;color:var(--color-accent);stroke-width:1.7}.workflow-steps strong{font-size:1.08rem}.workflow-steps p{margin:.2rem 0 0;font-size:.92rem}.meal-proof,.details-proof,.invite-link,.invite-qr{border:1px solid var(--color-border);border-radius:var(--radius-media);background:var(--color-surface)}.meal-proof{padding:var(--space-6)}.meal-proof__header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:var(--space-5)}.meal-proof h3{margin-bottom:var(--space-1);font-size:2rem}.meal-proof p{margin:0}.meal-proof__header div>span{display:inline-flex;align-items:center;gap:var(--space-2);margin-top:var(--space-2);color:var(--color-muted)}.dish-rows{margin-top:var(--space-2)}.dish-row{display:grid;grid-template-columns:minmax(10rem,1.7fr) .55fr 1fr .7fr auto;align-items:center;min-height:3.25rem;gap:var(--space-3);border-top:1px solid var(--color-border)}.dish-row strong{font-family:var(--font-serif);font-size:1.05rem;font-weight:500}.dish-row small{text-transform:uppercase;letter-spacing:.05em}.dish-row em{color:var(--color-sage);font-style:normal}.dish-row>span{color:var(--color-muted);text-align:right}.dish-row svg{width:1rem;flex:0 0 1rem;stroke-width:1.7}.details-proof{padding:var(--space-3) var(--space-6)}.invite-proof{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,.8fr);gap:var(--space-6)}.invite-proof>*,.invite-link>div{min-width:0}.invite-link,.invite-qr{padding:var(--space-6)}.invite-link label,.invite-qr>strong{display:block;margin-bottom:var(--space-3);font-weight:650}.invite-link>div{display:flex;gap:var(--space-2)}.invite-link>div>input{display:block;flex:1;min-width:0;min-height:2.75rem;padding-inline:var(--space-3);overflow:hidden;border:1px solid var(--color-border);border-radius:var(--radius-control);color:var(--color-muted);background:var(--color-surface);text-overflow:ellipsis}.invite-link p,.invite-qr p,.qr-figure figcaption{margin:var(--space-4) 0 0;color:var(--color-muted);font-size:.9rem}.invite-status{color:var(--color-ink)!important;font-weight:650}.qr-figure{margin:0}.qr-code{width:9rem;height:9rem;background:var(--color-surface)}.qr-state{display:grid;min-height:9rem;place-items:center;margin:0!important;padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-control);text-align:center}.devices-section{padding-bottom:0}.section-split--devices{align-items:center}@media(max-width:64rem){.hero__inner{grid-template-columns:minmax(17rem,.82fr) minmax(0,1.18fr);min-height:35rem}.hero h1{font-size:clamp(3rem,5vw,3.25rem)}.hero__media{min-height:32rem}.hero__media>picture{width:72%}.section-split{grid-template-columns:minmax(13rem,.7fr) minmax(0,1.6fr);gap:var(--space-7)}.invite-proof{grid-template-columns:minmax(0,1fr)}.workflow-steps{grid-template-columns:1fr}.workflow-steps li{border-bottom:1px solid var(--color-border)}.workflow-steps li:after{display:none}}@media(max-width:48rem){.hero{padding-block:0}.hero__inner{grid-template-columns:minmax(0,52%) minmax(0,48%);width:100%;max-width:none;min-height:29rem;padding-inline:0;gap:0}.hero__copy{align-self:start;padding:var(--space-5) var(--space-1) var(--space-5) max(1rem,env(safe-area-inset-left))}.hero h1{max-width:none;font-size:clamp(1.8rem,7.4vw,2.3rem);line-height:1.03}.hero__copy>p{margin-bottom:var(--space-4);font-size:1.0625rem;line-height:1.45}.hero__actions{flex-direction:column;align-items:stretch;gap:var(--space-2)}.hero__actions .button{min-width:0;padding-inline:var(--space-2)}.hero__actions .text-link{justify-content:center}.hero__media{min-height:29rem}.hero__media>picture{width:100%;height:100%;margin:0}.hero__media>picture img{border-radius:0;object-position:60% 50%}.hero__desktop-preview{display:none}.hero__phone-preview{display:block;top:0;left:0;width:60%;height:100%;border-block:0;border-radius:1.5rem 1.5rem 0 0}.section-split,.section-split--details,.section-split--devices{grid-template-columns:1fr}.section-intro h2{max-width:18ch;font-size:clamp(2.25rem,8.5vw,2.8rem)}.section-intro p{font-size:1rem}.workflow-steps li{grid-template-columns:2.5rem 2.25rem 1fr;padding-block:var(--space-3)}.meal-proof{padding:var(--space-4)}.meal-proof__header{margin-bottom:0}.meal-proof>strong,.meal-proof>.dish-rows,.inline-action{display:none}.dish-row{grid-template-columns:minmax(8rem,1.5fr) .55fr .8fr auto;gap:var(--space-2)}.dish-row>span{display:none}.details-proof{padding-inline:var(--space-4)}.invite-proof{grid-template-columns:1fr}.invite-link,.invite-qr{padding:var(--space-4)}.invite-link>div{flex-direction:column}}@media(max-width:22rem){.hero__inner{grid-template-columns:1fr}.hero__copy{padding:var(--space-6) max(1.25rem,env(safe-area-inset-right)) var(--space-6) max(1.25rem,env(safe-area-inset-left))}.hero h1{max-width:11ch;font-size:clamp(2.7rem,12vw,3.25rem)}.hero__media{min-height:25rem}.hero__phone-preview{width:52%}.meal-proof__header{display:block}.dish-row{grid-template-columns:minmax(8rem,1fr) .6fr auto}.dish-row em{display:none}}.product-preview{position:relative;color:var(--color-ink);background:var(--color-surface)}.product-preview__header{display:flex;align-items:center;justify-content:center;min-height:4rem;padding:var(--space-3) var(--space-5);border-bottom:1px solid var(--color-border);text-align:center}.product-preview__header strong,.product-preview__header small{display:block}.product-preview__header strong{font-family:var(--font-serif);font-size:1.25rem;font-weight:500;line-height:1.1}.product-preview__header small{color:var(--color-muted);font-size:.7rem}.preview-tabs{display:flex;justify-content:center;gap:var(--space-7);min-height:3.2rem;border-bottom:1px solid var(--color-border);font-size:.78rem}.preview-tabs span{display:grid;place-items:center;border-bottom:2px solid transparent}.preview-tabs .is-selected{border-color:var(--color-accent);color:var(--color-accent)}.preview-meals{padding-inline:var(--space-5)}.preview-meal{display:flex;align-items:center;justify-content:space-between;min-height:6rem;padding-block:var(--space-3);border-bottom:1px solid var(--color-border)}.preview-meal small,.preview-meal p,.preview-meal em{display:block;margin:0;font-size:.7rem;font-style:normal}.preview-meal small{color:var(--color-muted);letter-spacing:.06em;text-transform:uppercase}.preview-meal__name{display:block;margin:.15rem 0;font-family:var(--font-serif);font-size:1.25rem;line-height:1.15}.preview-meal em{color:var(--color-sage)}.preview-meal svg,.preview-dish svg{width:1rem;flex:0 0 1rem;stroke-width:1.7}.preview-fab{position:absolute;right:var(--space-4);bottom:var(--space-4);display:grid;width:2.75rem;height:2.75rem;place-items:center;border-radius:var(--radius-round);color:var(--color-surface);background:var(--color-accent);box-shadow:var(--shadow-elevated)}.preview-fab svg{width:1.35rem}.device-composition{position:relative;min-height:25rem}.device-composition__desktop,.device-composition__phone{position:absolute;bottom:0;overflow:hidden;border:6px solid var(--color-ink);background:var(--color-surface);box-shadow:var(--shadow-elevated)}.device-composition__desktop{right:0;width:86%;border-radius:var(--radius-media) var(--radius-media) 0 0}.device-composition__phone{z-index:2;left:0;width:27%;min-width:10rem;border-radius:1.8rem 1.8rem 0 0}.desktop-preview{display:grid;grid-template-columns:.7fr 1.25fr 1fr;min-height:21rem;font-size:.68rem}.desktop-preview__groups,.desktop-preview__dishes{display:flex;flex-direction:column;padding:var(--space-4)}.desktop-preview__groups{gap:var(--space-3);border-right:1px solid var(--color-border)}.desktop-preview__groups>strong{margin-bottom:var(--space-3);font-family:var(--font-serif);font-size:1.35rem;font-weight:500}.desktop-preview__groups>small{text-transform:uppercase}.desktop-preview__groups .is-selected{margin-inline:calc(var(--space-4) * -1);padding:var(--space-2) var(--space-4);border-left:2px solid var(--color-accent);color:var(--color-accent);background:var(--color-accent-soft)}.outline-action{margin-top:var(--space-2);padding:var(--space-2);border:1px solid var(--color-accent);border-radius:var(--radius-control);color:var(--color-accent)}.desktop-preview__meals{border-right:1px solid var(--color-border)}.desktop-preview .product-preview__header{min-height:3rem}.desktop-preview .preview-meal{min-height:4.2rem}.desktop-preview .preview-meal:nth-child(n+3){display:none}.desktop-preview .preview-meal__name{font-size:.95rem}.desktop-preview .preview-meal small,.desktop-preview .preview-meal p,.desktop-preview .preview-meal em{font-size:.55rem}.desktop-preview__dishes-header,.preview-dish{display:flex;align-items:center}.desktop-preview__dishes-header{justify-content:space-between;min-height:3rem;border-bottom:1px solid var(--color-border)}.desktop-preview__dishes-header span{display:inline-flex;align-items:center;gap:var(--space-1);color:var(--color-accent)}.desktop-preview__dishes-header svg{width:.85rem}.preview-dish{min-height:2.65rem;gap:var(--space-2);border-bottom:1px solid var(--color-border)}.preview-dish span{flex:1;font-family:var(--font-serif)}.preview-dish small{color:var(--color-muted)}@media(max-width:64rem){.desktop-preview{grid-template-columns:.65fr 1.35fr}.desktop-preview__dishes{display:none}}@media(max-width:48rem){.hero__phone-preview .product-preview__header,.hero__phone-preview .preview-tabs{min-height:2.8rem}.hero__phone-preview .preview-meals{padding-inline:var(--space-3)}.hero__phone-preview .preview-meal{min-height:5.2rem}.hero__phone-preview .preview-meal__name{font-size:1rem}.hero__phone-preview .preview-meal small,.hero__phone-preview .preview-meal p,.hero__phone-preview .preview-meal em{font-size:.56rem}.device-composition{min-height:21rem}}@media(max-width:22rem){.device-composition{min-height:17rem}.device-composition__phone,.device-composition__desktop{border-width:4px}.device-composition__phone{min-width:7rem}}
