:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--colour-text:#282722;--colour-text-muted:#69645b;--colour-surface:#fffdf7;--colour-surface-subtle:#f7f3ea;--colour-surface-raised:#fff;--colour-brand:#9e3f23;--colour-brand-hover:#79301d;--colour-brand-soft:#f6e4dc;--colour-positive:#3f6043;--colour-positive-soft:#e4eee3;--colour-attention:#74550f;--colour-attention-soft:#f7eccb;--colour-error:#982f23;--colour-error-soft:#f9e3df;--colour-border:#d8d0c2;--colour-border-strong:#aaa092;--colour-focus:#0b57d0;--colour-overlay:#1b191694;--font-display:Georgia, "Times New Roman", serif;--font-body:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-size-caption:.75rem;--font-size-small:.875rem;--font-size-body:1rem;--font-size-lead:clamp(1.05rem, 1rem + .3vw, 1.2rem);--font-size-heading-2:clamp(1.5rem, 1.25rem + 1.2vw, 2.25rem);--font-size-heading-1:clamp(2.35rem, 1.85rem + 3vw, 4.75rem);--line-height-tight:1.08;--line-height-body:1.55;--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:6rem;--radius-small:.5rem;--radius-medium:.875rem;--radius-large:1.25rem;--radius-pill:999px;--border-default:1px solid var(--colour-border);--shadow-soft:0 .75rem 2.5rem #28272214;--shadow-overlay:0 1.5rem 5rem #14121038;--motion-fast:.12s;--motion-standard:.18s;--motion-ease:cubic-bezier(.2, 0, 0, 1);--layout-content:72rem;--layout-reading:42rem;--layout-rail:15.5rem;--touch-target:3rem;--z-navigation:20;--z-overlay:50;--z-skip-link:100}.site-frame{min-height:100vh}.page-container{width:min(100% - 2rem, var(--layout-content));margin-inline:auto}.page-content{min-width:0;padding-block:var(--space-5) calc(var(--space-9) + env(safe-area-inset-bottom))}.page-section{position:relative}.stack{flex-direction:column;display:flex}.stack-small{gap:var(--space-3)}.stack-medium{gap:var(--space-5)}.stack-large{gap:var(--space-7)}.inline,.action-group{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.responsive-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fit, minmax(min(100%, var(--grid-minimum)), 1fr));display:grid}.page-header{align-items:end;gap:var(--space-5);grid-template-columns:minmax(0,1fr);display:grid}.page-header-copy{max-width:var(--layout-reading)}.page-header h1{margin-bottom:var(--space-4);max-width:13ch}.page-header-copy>p:not(.eyebrow){color:var(--colour-text-muted);font-size:var(--font-size-lead);margin-bottom:0}.page-header-status{margin-top:var(--space-4)}.page-header-actions{justify-self:start}.narrow-page{max-width:var(--layout-reading)}@media (width>=48rem){.page-container{width:min(100% - 3rem, var(--layout-content))}.page-content{padding-block:var(--space-7) var(--space-9)}.page-header{grid-template-columns:minmax(0,1fr) auto}.page-header-actions{justify-self:end}}@media (width>=64rem){.site-frame{grid-template-columns:var(--layout-rail) minmax(0, 1fr);grid-template-rows:1fr auto;min-height:100vh;display:grid}.page-content,.site-footer{grid-column:2}}.button,.icon-button{cursor:pointer;min-height:var(--touch-target);transition:background-color var(--motion-fast) var(--motion-ease), border-color var(--motion-fast) var(--motion-ease), transform var(--motion-fast) var(--motion-ease);border:2px solid #0000;justify-content:center;align-items:center;display:inline-flex}.button{border-radius:var(--radius-medium);gap:var(--space-2);padding:.7rem 1rem;font-weight:750;text-decoration:none}.button-primary{background:var(--colour-brand);color:#fff}.button-primary:hover{background:var(--colour-brand-hover)}.button-secondary{background:var(--colour-surface);border-color:var(--colour-border);color:var(--colour-text)}.button-secondary:hover,.button-quiet:hover{background:var(--colour-brand-soft)}.button-quiet{color:var(--colour-brand-hover);background:0 0}.button:active:not(:disabled),.icon-button:active:not(:disabled){transform:translateY(1px)}.button:disabled,.icon-button:disabled{cursor:not-allowed;opacity:.55}.icon-button{border-radius:var(--radius-pill);color:var(--colour-text);min-width:var(--touch-target);padding:var(--space-2);background:0 0}.icon-button:hover{background:var(--colour-brand-soft)}.icon-button svg{width:1.4rem;height:1.4rem}.button-spinner,.spinner{border:3px solid;border-top-color:#0000;border-radius:50%;animation:.8s linear infinite spin}.button-spinner{width:1rem;height:1rem}.spinner-medium{color:var(--colour-brand);width:2rem;height:2rem}.spinner-small{color:var(--colour-brand);width:1rem;height:1rem}@keyframes spin{to{transform:rotate(360deg)}}.panel{background:var(--colour-surface);border:var(--border-default);border-radius:var(--radius-large);box-shadow:var(--shadow-soft);padding:clamp(1.25rem,4vw,2rem)}.card>svg,.placeholder-icon{color:var(--colour-brand);width:1.75rem;height:1.75rem}.card h2{margin-block:var(--space-4) var(--space-2);font-size:1.35rem}.card p{color:var(--colour-text-muted);margin-bottom:0}.badge,.environment-badge{border-radius:var(--radius-pill);font-size:var(--font-size-caption);padding:var(--space-1) var(--space-3);font-weight:750;display:inline-flex}.environment-badge{background:var(--colour-brand-soft);color:var(--colour-brand-hover);margin-block:0 var(--space-5);text-transform:uppercase}.badge-neutral{background:var(--colour-surface-subtle);border:var(--border-default)}.badge-positive{background:var(--colour-positive-soft);color:var(--colour-positive)}.badge-attention{background:var(--colour-attention-soft);color:var(--colour-attention)}.field,.field-group{gap:var(--space-2);display:grid}.auth-shell{align-items:center;gap:var(--space-6);min-height:100dvh;padding:var(--space-5);justify-items:center;display:grid}.auth-card{background:var(--colour-surface);border:var(--border-default);border-radius:var(--radius-large);box-shadow:var(--shadow-soft);gap:var(--space-4);max-width:30rem;padding:clamp(var(--space-5), 6vw, var(--space-8));width:100%;display:grid}.auth-form,.auth-actions{gap:var(--space-4);display:grid}.onboarding-shell{align-items:start;gap:var(--space-5);min-height:100dvh;padding:clamp(var(--space-4), 5vw, var(--space-8));justify-items:center;display:grid}.onboarding-card{background:var(--colour-surface);border:var(--border-default);border-radius:var(--radius-large);box-shadow:var(--shadow-soft);max-width:44rem;padding:clamp(var(--space-5), 5vw, var(--space-8));width:100%}.onboarding-progress{color:var(--colour-text-muted);font-size:var(--font-size-small);gap:var(--space-2);font-weight:700;display:grid}.onboarding-progress progress{accent-color:var(--colour-brand);width:100%;height:.5rem}.onboarding-heading p{color:var(--colour-text-muted);margin-bottom:0}.onboarding-form,.onboarding-grid{gap:var(--space-4);display:grid}.onboarding-form>.button{justify-self:start}.choice-group{gap:var(--space-3);border:0;margin:0;padding:0;display:grid}.choice-group legend{font-size:1.1rem;font-weight:750}.choice-grid{gap:var(--space-2);grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));display:grid}.people-section{gap:var(--space-4);display:grid}.people-section>h2,.people-section>p,.person-row h3,.person-row p{margin:0}.invite-form{align-items:end;gap:var(--space-3);grid-template-columns:minmax(0,1fr) auto;display:grid}.people-list{border:var(--border-default);border-radius:var(--radius-medium);overflow:hidden}.person-row{background:var(--colour-surface);align-items:center;gap:var(--space-4);padding:var(--space-4);justify-content:space-between;display:flex}.person-row+.person-row{border-top:var(--border-default)}.person-row p{color:var(--colour-text-muted);font-size:var(--font-size-small)}.person-actions,.dialog-actions{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.dialog-actions{justify-content:flex-end}@media (width<=36rem){.invite-form{grid-template-columns:1fr;align-items:stretch}.person-row{flex-direction:column;align-items:flex-start}}.choice-grid label{border:var(--border-default);border-radius:var(--radius-small);cursor:pointer;align-items:center;gap:var(--space-2);min-height:var(--touch-target);padding:var(--space-2) var(--space-3);display:flex}.choice-grid input{width:1.25rem;height:1.25rem}@media (width>=42rem){.onboarding-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.auth-actions .button{justify-content:center;text-decoration:none}.form-label{align-items:baseline;gap:var(--space-2);font-weight:700;display:flex}.form-optional,.form-hint{color:var(--colour-text-muted);font-size:var(--font-size-small);font-weight:400}.field input,.field select,.field textarea{background:var(--colour-surface);border:1px solid var(--colour-border-strong);border-radius:var(--radius-small);color:var(--colour-text);min-height:var(--touch-target);padding:.7rem var(--space-3);width:100%}.field textarea{resize:vertical;min-height:7rem}.field input[aria-invalid=true],.field select[aria-invalid=true],.field textarea[aria-invalid=true]{border-color:var(--colour-error);box-shadow:inset 0 0 0 1px var(--colour-error)}.form-error,.form-hint{margin:0}.form-error{color:var(--colour-error);font-size:var(--font-size-small);font-weight:650}.state{align-items:flex-start;gap:var(--space-3);max-width:var(--layout-reading);flex-direction:column;display:flex}.state-card{background:var(--colour-surface);border:var(--border-default);border-radius:var(--radius-large);padding:clamp(1.25rem,4vw,2rem)}.state>*{margin-bottom:0}.state h1,.state h2{max-width:18ch}.state>p:not(.eyebrow){color:var(--colour-text-muted)}.state-actions{margin-top:var(--space-2)}.state-loading{padding-block:var(--space-5);flex-direction:row;align-items:center}.state-full-page{justify-content:center;align-items:center;min-height:100vh;margin-inline:auto}.error-state{border-left:.35rem solid var(--colour-error)}.error-state small{color:var(--colour-text-muted)}.feedback{border:var(--border-default);border-radius:var(--radius-medium);align-items:center;gap:var(--space-4);padding:var(--space-4);border-left-width:.35rem;justify-content:space-between;display:flex}.feedback h2{font-family:var(--font-body);margin-bottom:var(--space-1);font-size:1rem;font-weight:750}.feedback p{color:var(--colour-text-muted);margin-bottom:0}.feedback-info{border-left-color:var(--colour-focus)}.feedback-success{background:var(--colour-positive-soft);border-left-color:var(--colour-positive)}.feedback-error{background:var(--colour-error-soft);border-left-color:var(--colour-error)}.status-list{margin:0}.status-list div{border-bottom:var(--border-default);padding-block:var(--space-3);justify-content:space-between;display:flex}.status-list div:last-child{border-bottom:0}.status-list dt{color:var(--colour-text-muted)}.status-list dd{margin:0;font-weight:700}.placeholder-icon{margin-top:var(--space-5)}.modal-surface{background:var(--colour-surface);box-shadow:var(--shadow-overlay);color:var(--colour-text);opacity:0;max-height:calc(100dvh - 2rem);transition:opacity var(--motion-standard) var(--motion-ease), transform var(--motion-standard) var(--motion-ease), display var(--motion-standard) allow-discrete, overlay var(--motion-standard) allow-discrete;border:0;margin:auto;padding:0;transform:translateY(.5rem)}.modal-surface[open]{opacity:1;transform:translateY(0)}.modal-dialog{border-radius:var(--radius-large);width:min(100% - 2rem,34rem)}.modal-sheet{border-radius:var(--radius-large) 0 0 var(--radius-large);width:min(92vw,28rem);height:100dvh;max-height:100dvh;margin:0 0 0 auto}.modal-surface::backdrop{background:var(--colour-overlay)}.modal-header{border-bottom:var(--border-default);align-items:flex-start;gap:var(--space-4);padding:var(--space-5);justify-content:space-between;display:flex}.modal-header h2{margin-bottom:var(--space-2);font-size:1.5rem}.modal-header p{color:var(--colour-text-muted);margin-bottom:0}.modal-content{padding:var(--space-5);overflow-y:auto}@starting-style{.modal-surface[open]{opacity:0;transform:translateY(.5rem)}}.pantry-panel-heading{gap:var(--space-1);margin-bottom:var(--space-4);display:grid}.pantry-panel-heading h2,.pantry-panel-heading p{margin:0}.pantry-panel-heading p{color:var(--colour-text-muted)}.pantry-form{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));display:grid}.checkbox-field{align-items:center;gap:var(--space-2);min-height:var(--touch-target);font-weight:700;display:inline-flex}.pantry-section{gap:var(--space-4);display:grid}.pantry-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(min(100%,16rem),1fr));display:grid}.pantry-card{background:var(--colour-surface);border:var(--border-default);border-radius:var(--radius-large);gap:var(--space-3);padding:var(--space-4);display:grid}.pantry-card h3,.pantry-card p{margin:0}.pantry-card h3+p{color:var(--colour-text-muted)}.recipe-card{color:inherit;cursor:pointer;font:inherit;text-align:left;width:100%}.recipe-card:hover{border-color:var(--colour-brand)}.recipe-card:focus-visible{outline:3px solid var(--colour-focus);outline-offset:3px}.recipe-card-heading{font-family:var(--font-heading);font-size:1.35rem;font-weight:700}.recipe-card-summary{color:var(--colour-text-muted)}.pantry-quantity{font-size:1.1rem;font-weight:800}.pantry-actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.empty-state{gap:var(--space-3);display:grid}.empty-state h2,.empty-state p{margin:0}.pantry-edit-form{grid-template-columns:1fr}.recipe-form{gap:var(--space-4);display:grid}.recipe-library-toolbar{align-items:end;gap:var(--space-3);grid-template-columns:minmax(5.5rem,1fr) auto auto auto;min-width:0;display:grid}.recipe-library-toolbar .form-label{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.recipe-library-toolbar .field input{min-width:0}.recipe-library-grid{margin-top:var(--space-2)}.recipe-detail-dialog{gap:var(--space-4);display:grid}.recipe-detail-dialog h3,.recipe-detail-dialog p,.recipe-detail-dialog dl{margin:0}.recipe-detail-dialog ul,.recipe-detail-dialog ol{margin-block:var(--space-2) 0;padding-left:1.4rem}@media (width<=36rem){.recipe-library-header{gap:var(--space-2)}.recipe-library-header h1{margin-bottom:var(--space-1);font-size:2rem}.recipe-library-header>p{margin-bottom:0;font-size:.9rem}.recipe-library-toolbar{gap:var(--space-2)}.recipe-library-toolbar .button,.recipe-library-toolbar .field input{height:var(--touch-target);min-height:var(--touch-target);font-size:.875rem}.recipe-library-toolbar .button{padding-inline:var(--space-2);white-space:nowrap}.recipe-library-toolbar .field input{padding-inline:var(--space-2)}.recipe-library-toolbar>.button:last-child{grid-column:1/-1}.recipe-library-grid{gap:var(--space-2);grid-template-columns:repeat(4,minmax(0,1fr))}.recipe-library-grid .recipe-card{aspect-ratio:1;border-radius:var(--radius-small);align-content:start;gap:var(--space-1);min-height:var(--touch-target);padding:var(--space-2)}.recipe-library-grid .recipe-card-heading{overflow-wrap:anywhere;-webkit-line-clamp:3;-webkit-box-orient:vertical;font-size:.8rem;line-height:1.15;display:-webkit-box;overflow:hidden}.recipe-library-grid .recipe-card-summary{display:none}}.recipe-form-compact{gap:var(--space-4);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}@media (width<=36rem){.recipe-form-compact{grid-template-columns:1fr}}.meal-planner-page{gap:var(--space-5)}.page-header.meal-planner-header{max-width:54rem;display:block}.meal-planner-header .eyebrow{margin-bottom:var(--space-3)}.meal-planner-header h1{margin:0 0 var(--space-4);max-width:15ch;font-size:clamp(2.75rem,7vw,5rem);line-height:.98}.meal-planner-header>p{color:var(--colour-text-muted);font-size:var(--font-size-lead);max-width:36rem;margin:0}.meal-planner-header>.button{margin-top:var(--space-4)}.meal-week-toolbar{align-items:center;gap:var(--space-2);grid-template-columns:var(--touch-target) minmax(0, 1fr) var(--touch-target);text-align:center;width:100%;max-width:42rem;margin-inline:auto;display:grid}.meal-week-toolbar>div{gap:var(--space-1);display:grid}.meal-week-toolbar strong{font-family:var(--font-heading);font-size:clamp(1.1rem,3vw,1.4rem)}.meal-week-toolbar>div button{color:var(--colour-brand-hover);cursor:pointer;font:inherit;font-size:var(--font-size-small);background:0 0;border:0;text-decoration:underline}.meal-planner-error{background:var(--colour-error-soft);border-left:.25rem solid var(--colour-error);border-radius:var(--radius-small);color:var(--colour-error);padding:var(--space-3) var(--space-4);margin:0}.meal-week{gap:var(--space-3);display:grid}.meal-day{background:var(--colour-surface);border:var(--border-default);border-radius:var(--radius-large);gap:var(--space-3);min-width:0;padding:var(--space-4);transition:border-color var(--motion-fast) var(--motion-ease), box-shadow var(--motion-fast) var(--motion-ease);display:grid}.meal-day-today{border-color:var(--colour-brand)}.meal-day-drop-target{border-color:var(--colour-brand);box-shadow:inset 0 0 0 2px var(--colour-brand-soft)}.meal-day-heading{align-items:flex-start;gap:var(--space-2);justify-content:space-between;display:flex}.meal-day-heading p,.meal-day-heading h2{margin:0}.meal-day-heading p{color:var(--colour-text-muted);font-size:var(--font-size-small);text-transform:uppercase;font-weight:750}.meal-day-heading h2{margin-top:var(--space-1);font-size:1.15rem}.meal-today-badge{border-radius:var(--radius-pill);font-size:var(--font-size-caption);border:1px solid;padding:.15rem .5rem;font-weight:750}.meal-day>.button{justify-content:flex-start;width:100%}.planned-meal{background:var(--colour-brand-soft);border-radius:var(--radius-medium);align-items:center;gap:var(--space-2);padding:var(--space-3);touch-action:none;transition:opacity var(--motion-fast) var(--motion-ease), transform var(--motion-fast) var(--motion-ease);grid-template-columns:auto minmax(0,1fr) auto;display:grid}.planned-meal.dragging{opacity:.7;transform:scale(1.02)}.meal-drag-handle{color:var(--colour-text-muted);width:1.25rem;height:1.25rem}.planned-meal-title,.meal-remove{color:inherit;cursor:pointer;background:0 0;border:0}.planned-meal-actions{flex-wrap:wrap;justify-content:flex-end;display:flex}.planned-meal-title{gap:var(--space-1);text-align:left;min-width:0;padding:0;display:grid}.planned-meal-title strong,.planned-meal-title span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.planned-meal-title span{color:var(--colour-text-muted);font-size:var(--font-size-small)}.meal-remove{border-radius:var(--radius-pill);min-height:var(--touch-target);min-width:var(--touch-target);padding:var(--space-2);justify-content:center;align-items:center;display:inline-flex}.meal-remove:hover{background:var(--colour-surface)}.meal-remove svg{width:1.1rem;height:1.1rem}.meal-drag-instructions{width:1px;height:1px;margin:-1px;position:absolute;overflow:hidden}.meal-planner-permission{background:var(--colour-brand-soft);border-radius:var(--radius-large);align-items:flex-start;gap:var(--space-3);max-width:42rem;padding:var(--space-4);width:100%;margin-inline:auto;display:flex}.meal-planner-permission>span{font-size:1.5rem}.meal-planner-permission strong,.meal-planner-permission p{margin:0}.meal-planner-permission p{color:var(--colour-text-muted);margin-top:var(--space-1)}@media (width<=36rem){.meal-planner-page{gap:var(--space-2)}.meal-planner-header h1{margin-bottom:var(--space-1);font-size:2rem;line-height:1}.meal-planner-header>p{font-size:.9rem;line-height:1.3}.meal-planner-header>.button{margin-top:var(--space-2);width:100%}.meal-week-toolbar{gap:var(--space-1)}.meal-week-toolbar strong{font-size:1rem}.meal-week{gap:var(--space-1)}.meal-day{border-radius:var(--radius-small);align-items:center;gap:var(--space-1);min-height:var(--touch-target);padding:.2rem var(--space-1);grid-template-columns:5.25rem minmax(0,1fr)}.meal-day-heading{align-items:center}.meal-day-heading p{font-size:.7rem}.meal-day-heading h2{margin-top:0;font-size:.9rem}.meal-today-badge{display:none}.meal-day>.button{min-height:var(--touch-target);padding-block:var(--space-1)}.planned-meal{min-height:var(--touch-target);grid-template-columns:1rem minmax(0,1fr) auto;gap:0;padding:0}.planned-meal-title{padding-inline:var(--space-1)}.planned-meal-title .meal-recipe-status,.planned-meal-title>span:last-child{display:none}.meal-drag-handle{width:1rem;height:1rem}.meal-planner-permission{display:none}}@media (width>=44rem){.meal-week{grid-template-columns:repeat(7,minmax(0,1fr))}.meal-day{padding:var(--space-3);align-content:start}.meal-day-heading{align-items:flex-start;min-height:4.5rem}.meal-day-heading h2{font-size:1rem}.planned-meal{min-height:5.25rem;padding:var(--space-3);grid-template-columns:minmax(0,1fr)}.meal-drag-handle{display:none}.planned-meal-actions{justify-content:flex-start}}.shopping-page{gap:var(--space-5)}.shopping-header>p:last-child{color:var(--colour-text-muted);max-width:38rem}.shopping-title-row{align-items:baseline;gap:var(--space-3);justify-content:space-between;display:flex}.shopping-title-row h1{margin-bottom:0}.shopping-summary{color:var(--colour-text-muted);white-space:nowrap;flex:none;margin:0}.shopping-summary strong{font-family:var(--font-display);font-size:1.5rem}.shopping-form{align-items:end;gap:var(--space-3);grid-template-columns:minmax(12rem,2fr) minmax(6rem,.6fr) minmax(6rem,.7fr) minmax(10rem,1fr) auto;display:grid}.shopping-quick-add{grid-template-columns:minmax(0,1fr) minmax(5rem,.25fr) auto;align-items:start}.shopping-quick-add .form-label{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.shopping-quick-add .field{min-width:0}.shopping-form .form-error{grid-column:1/-1}.shopping-form .button svg{width:1rem;height:1rem}.shopping-category{gap:var(--space-2);display:grid}.shopping-category>h2{margin:0;font-size:1rem}.shopping-list{gap:var(--space-1);margin:0;padding:0;list-style:none;display:grid}.shopping-item{background:var(--colour-surface);border:var(--border-default);border-radius:var(--radius-medium);align-items:center;gap:var(--space-2);grid-template-columns:var(--touch-target) minmax(0, 1fr) var(--touch-target) var(--touch-target) var(--touch-target);min-height:var(--touch-target);padding:0 var(--space-1);display:grid}.shopping-item-pantry-match{background:var(--colour-surface-subtle);border-color:var(--colour-brand)}.shopping-pantry-info{position:relative}.shopping-pantry-info-button{border-radius:var(--radius-pill);color:var(--colour-brand);cursor:help;font:inherit;min-height:var(--touch-target);min-width:var(--touch-target);background:0 0;border:0;justify-content:center;align-items:center;font-weight:800;display:inline-flex}.shopping-pantry-info-button:focus-visible{outline:3px solid var(--colour-focus);outline-offset:-3px}.shopping-pantry-tooltip{background:var(--colour-text);border-radius:var(--radius-small);bottom:calc(100% + var(--space-1));color:var(--colour-surface);max-width:min(18rem, calc(100vw - var(--space-6)));padding:var(--space-2) var(--space-3);z-index:10;width:max-content;font-size:.875rem;font-weight:400;line-height:1.4;position:absolute;right:0}.shopping-check,.shopping-icon-action{border-radius:var(--radius-pill);color:inherit;cursor:pointer;min-height:var(--touch-target);min-width:var(--touch-target);background:0 0;border:0;justify-content:center;align-items:center;display:inline-flex}.shopping-check{height:1.75rem;min-height:var(--touch-target);min-width:var(--touch-target);border:0;width:1.75rem;margin:auto;position:relative}.shopping-check:before{border:2px solid var(--colour-brand);border-radius:var(--radius-pill);content:"";width:1.35rem;height:1.35rem;position:absolute}.shopping-check svg,.shopping-icon-action svg{z-index:1;width:1.1rem;height:1.1rem;position:relative}.shopping-item-copy{align-items:baseline;gap:var(--space-2);min-width:0;display:flex}.shopping-item-copy strong,.shopping-item-copy span{overflow-wrap:anywhere}.shopping-item-copy span{color:var(--colour-text-muted);font-size:inherit;flex:none}.shopping-item-completed .shopping-item-copy{color:var(--colour-text-muted);text-decoration:line-through}.shopping-item-completed .shopping-check{color:var(--colour-surface)}.shopping-item-completed .shopping-check:before{background:var(--colour-brand)}.shopping-completed{margin-top:var(--space-3)}.shopping-inline-edit{align-items:center;gap:var(--space-1);grid-column:2/-1;grid-template-columns:4.75rem minmax(0, 1fr) var(--touch-target) var(--touch-target);display:grid}.shopping-inline-edit input{background:var(--colour-surface);border:1px solid var(--colour-border-strong);border-radius:var(--radius-small);color:var(--colour-text);font:inherit;min-height:var(--touch-target);min-width:0;padding-inline:var(--space-2);width:100%}.shopping-inline-edit .form-error{grid-column:1/-1}@media (width<=52rem){.shopping-form{grid-template-columns:repeat(2,minmax(0,1fr))}.shopping-form>.button{width:100%}}@media (width<=36rem){.shopping-page{gap:var(--space-3)}.shopping-header{gap:var(--space-1)}.shopping-header .eyebrow,.shopping-header>p:last-child{display:none}.shopping-header h1{margin:0;font-size:2rem}.shopping-summary strong{font-size:1.5rem}.shopping-add-panel{padding:var(--space-2)}.shopping-form{grid-template-columns:1fr}.shopping-quick-add{gap:var(--space-1);grid-template-columns:minmax(0,1fr) 4.75rem auto}.shopping-quick-add>.form-error{grid-column:1/-1}.shopping-quick-add .field{gap:var(--space-1);min-width:0}.shopping-quick-add .field input{min-height:var(--touch-target);padding-inline:var(--space-2);font-size:.875rem}.shopping-quick-add .button{padding-inline:var(--space-2);white-space:nowrap}.shopping-item{gap:var(--space-1);padding-inline:var(--space-1)}}.visibility-choice{border:var(--border-default);border-radius:var(--radius-large);gap:var(--space-2);padding:var(--space-3);margin:0;display:grid}.visibility-choice label{align-items:center;gap:var(--space-2);min-height:var(--touch-target);display:flex}.recipe-import-source{color:var(--colour-text-muted);font-size:var(--font-size-small);overflow-wrap:anywhere}.week-plan-dialog{gap:var(--space-4);display:grid}.week-plan-dialog h3{margin-block-end:var(--space-2)}.week-plan-proposals{gap:var(--space-3);display:grid}.week-plan-drag-instructions{color:var(--colour-text-muted);font-size:var(--font-size-small);margin-block:0 var(--space-3)}.week-plan-proposal{border:var(--border-default);border-radius:var(--radius-medium);align-items:center;gap:var(--space-2);padding:var(--space-2);transition:border-color var(--motion-fast) var(--motion-ease), opacity var(--motion-fast) var(--motion-ease), transform var(--motion-fast) var(--motion-ease);grid-template-columns:auto minmax(0,1fr) auto;display:grid}.week-plan-proposal.dragging{opacity:.7;transform:scale(1.01)}.week-plan-proposal.drop-target{border-color:var(--colour-brand)}.week-plan-drag-handle{border-radius:var(--radius-pill);color:var(--colour-text-muted);cursor:grab;min-height:var(--touch-target);min-width:var(--touch-target);padding:var(--space-2);touch-action:none;background:0 0;border:0;justify-content:center;align-items:center;display:inline-flex}.week-plan-drag-handle:active{cursor:grabbing}.week-plan-drag-handle svg,.week-plan-proposal-actions svg{width:1rem;height:1rem}.recipe-search-field{min-width:0;position:relative}.week-plan-proposal label{gap:var(--space-1);display:grid}.recipe-search-field input{width:100%;min-width:0;min-height:44px}.recipe-search-results{background:var(--colour-surface);border:var(--border-default);border-radius:var(--radius-medium);box-shadow:var(--shadow-soft);max-height:min(18rem,45vh);padding:var(--space-1);inset-inline:0;top:calc(100% + var(--space-1));z-index:3;display:grid;position:absolute;overflow-y:auto}.recipe-search-results button{border-radius:var(--radius-small);color:inherit;cursor:pointer;min-height:var(--touch-target);padding:var(--space-2);text-align:left;background:0 0;border:0}.recipe-search-results button:hover,.recipe-search-results button.active{background:var(--colour-brand-soft)}.recipe-search-results p{color:var(--colour-text-muted);font-size:var(--font-size-small);padding:var(--space-2);margin:0}.week-plan-proposal-actions{flex-wrap:wrap;justify-content:flex-end;display:flex}@media (width<=480px){.week-plan-proposal{grid-template-columns:auto minmax(0,1fr);align-items:stretch}.week-plan-proposal-actions{grid-column:2;justify-content:flex-start}}.site-header{border-bottom:var(--border-default);z-index:var(--z-navigation);background:#f7f3eaf0;position:sticky;top:0}.header-inner{justify-content:space-between;align-items:center;min-height:4.5rem;display:flex}.brand{align-items:center;gap:var(--space-3);text-decoration:none;display:inline-flex}.brand-mark{background:var(--colour-brand);border-radius:var(--radius-small);color:#fff;font-family:var(--font-display);place-items:center;width:2.4rem;height:2.4rem;font-size:1.4rem;display:grid}.brand strong,.brand small{display:block}.brand strong{letter-spacing:.06em;text-transform:uppercase}.brand small{color:var(--colour-text-muted);font-size:.68rem}.header-settings{border-radius:var(--radius-pill);min-height:var(--touch-target);min-width:var(--touch-target);justify-content:center;align-items:center;display:inline-flex}.header-settings[aria-current=page]{background:var(--colour-brand-soft);color:var(--colour-brand-hover)}.header-settings svg{width:1.4rem;height:1.4rem}.skip-link{background:var(--colour-text);border-radius:var(--radius-small);color:#fff;left:var(--space-4);padding:var(--space-3) var(--space-4);top:var(--space-4);z-index:var(--z-skip-link);position:fixed;transform:translateY(-200%)}.skip-link:focus{transform:translateY(0)}.desktop-rail{display:none}.primary-navigation{display:flex}.primary-navigation a{border-radius:var(--radius-medium);color:var(--colour-text-muted);font-size:var(--font-size-small);align-items:center;gap:var(--space-3);min-height:var(--touch-target);font-weight:650;text-decoration:none;display:flex}.primary-navigation a[aria-current=page]{background:var(--colour-brand-soft);color:var(--colour-brand-hover);font-weight:800}.navigation-mobile{border-top:var(--border-default);padding:var(--space-2) max(var(--space-2), env(safe-area-inset-right)) max(var(--space-2), env(safe-area-inset-bottom)) max(var(--space-2), env(safe-area-inset-left));z-index:var(--z-navigation);background:#fffdf7f7;justify-content:space-around;position:fixed;bottom:0;left:0;right:0}.navigation-mobile a{max-width:5rem;min-height:3.6rem;padding:var(--space-1);flex-direction:column;flex:1 1 0;justify-content:center;gap:.1rem;font-size:.68rem}.navigation-mobile svg{width:1.3rem;height:1.3rem}.site-footer{border-top:var(--border-default);color:var(--colour-text-muted);font-size:var(--font-size-small);padding-block:var(--space-5)}.site-footer p{margin:0}@media (width<=63.999rem){.site-footer{display:none}}@media (width>=64rem){.site-header,.navigation-mobile{display:none}.desktop-rail{background:var(--colour-surface);border-right:var(--border-default);gap:var(--space-7);min-height:100vh;padding:var(--space-5);flex-direction:column;grid-row:1/-1;display:flex;position:sticky;top:0}.brand-desktop{align-self:flex-start}.navigation-desktop{gap:var(--space-2);flex-direction:column}.navigation-desktop a{padding:var(--space-3)}.navigation-desktop svg{width:1.25rem;height:1.25rem}.rail-note{color:var(--colour-text-muted);font-size:var(--font-size-caption);margin-top:auto}}*,:before,:after{box-sizing:border-box}html{background:var(--colour-surface-subtle);color:var(--colour-text);font-family:var(--font-body);line-height:var(--line-height-body);-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{min-width:20rem;margin:0;overflow-x:hidden}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit}:focus-visible{outline:3px solid var(--colour-focus);outline-offset:3px}h1,h2,h3,p{margin-block-start:0}h1,h2,h3{font-family:var(--font-display);font-weight:500;line-height:var(--line-height-tight)}h1{font-size:var(--font-size-heading-1);letter-spacing:-.035em}h2{font-size:var(--font-size-heading-2)}h3{font-size:1.25rem}svg{flex:none}.eyebrow{color:var(--colour-brand-hover);font-size:var(--font-size-caption);letter-spacing:.1em;text-transform:uppercase;font-weight:800}.visually-hidden{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
