:root{--text:#3a2e1e;--text-h:#241c10;--bg:#fbf1dc;--surface:#fffdf6;--border:#eedfc0;--code-bg:#f5e9cc;--accent:#b5602e;--accent-strong:#7a3f1c;--accent-bg:#b5602e17;--accent-border:#b5602e59;--shadow:#241c1014 0 4px 10px -2px, #241c100d 0 2px 4px -2px;--text-muted:#7a6a52;--surface-2:#f7ecd4;--on-accent:#fff;--shadow-lg:#241c1024 0 12px 32px -4px;--danger:#8c342a;--danger-bg:#fdf0ee;--success:#3f6b3f;--success-bg:#eef6ee;--warning:#8a6314;--warning-bg:#fdf6e3;--identity-s:55%;--identity-l:38%;--sans:"Inter", system-ui, "Segoe UI", Roboto, sans-serif;--heading:"Fraunces", Georgia, serif;--mono:ui-monospace, Consolas, monospace;--script:var(--heading);font:16px/150% var(--sans);letter-spacing:0;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2.5rem;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:18px;--space-7:3.5rem;--text-xs:12px;--text-sm:14px;--text-base:16px;--text-lg:20px;--text-xl:24px;--text-2xl:32px;--status-good-bg:#dcece1;--status-good-fg:#3f6b4f;--status-warn-bg:#f7e4b0;--status-warn-fg:#7a5c10}body{background:var(--bg);min-height:100dvh;margin:0}#root{box-sizing:border-box;flex-direction:column;width:100%;min-height:100dvh;display:flex}h1,h2,h3{font-family:var(--sans);color:var(--text-h)}h1{font-family:var(--heading);font-size:var(--text-2xl);letter-spacing:-.4px;margin:0 0 20px;font-weight:650}h2{font-size:var(--text-lg);letter-spacing:-.2px;margin:0 0 10px;font-weight:700;line-height:130%}h3{margin:0 0 6px;font-size:15px;font-weight:600}p{margin:0}.skip-link{z-index:1000;color:var(--on-accent);background:var(--accent);border:1px solid var(--accent);border-radius:6px;padding:.6rem 1rem;font-weight:500;text-decoration:none;position:absolute;top:0;left:-9999px}.skip-link:focus{left:var(--space-3);top:var(--space-3)}a{color:var(--accent-strong)}button{font:inherit;color:var(--on-accent);background:var(--accent);border:1px solid var(--accent);border-radius:var(--radius-sm);cursor:pointer;padding:.55rem 1rem;font-size:14px;font-weight:600;line-height:1.2;transition:background .15s,border-color .15s,box-shadow .15s}@media (hover:hover){button:hover{background:var(--accent-strong);border-color:var(--accent-strong)}}button:active{box-shadow:inset 0 1px 2px #0003}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:2px}:root{accent-color:var(--accent)}button:disabled{opacity:.45;cursor:not-allowed}button.secondary{color:var(--text);background:var(--surface);border-color:var(--border)}@media (hover:hover){button.secondary:hover{background:var(--code-bg);border-color:var(--accent-border)}}button.quiet{color:var(--accent-strong);background:0 0;border-color:#0000;padding-inline:.6rem}@media (hover:hover){button.quiet:hover{background:var(--accent-bg);border-color:#0000}}button.danger{color:var(--danger);background:var(--surface);border-color:color-mix(in srgb, var(--danger) 35%, transparent)}@media (hover:hover){button.danger:hover{background:var(--danger);border-color:var(--danger);color:var(--surface)}}input[type=text],input[type=search],input[type=number],textarea,select{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--text);box-sizing:border-box;border-radius:6px;padding:.45rem .6rem;font-size:14px}input[type=text]:focus,input[type=search]:focus,input[type=number]:focus,textarea:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg);outline:none}input[type=text][readonly]{background:var(--bg);color:var(--text);opacity:.75;cursor:default}input[type=text][readonly]:focus{box-shadow:none;border-color:var(--border)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow)}@keyframes spin{to{transform:rotate(360deg)}}.spinner{border:3px solid var(--accent-border);border-top-color:var(--accent);border-radius:50%;width:28px;height:28px;animation:.8s linear infinite spin}.page-loading{padding:var(--space-6) 0;justify-content:center;align-items:center;display:flex}.recipe-browse-page h1{font-family:var(--script);letter-spacing:0;color:var(--accent-strong);font-size:46px;font-weight:700}.recipe-back-link{margin-bottom:var(--space-4);font-size:var(--text-sm);color:var(--text-muted);text-decoration:none;display:inline-block}.recipe-hero{gap:var(--space-6);grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);align-items:start;display:grid}.recipe-hero-media{margin:0}.recipe-hero-art{aspect-ratio:4/3;border-radius:var(--radius-xl);box-shadow:var(--shadow-lg)}.recipe-hero-credit{margin-top:var(--space-2);font-size:var(--text-xs);color:var(--text-muted)}.recipe-hero-credit a{color:inherit}.photo-credit-overlay{z-index:2;padding:0 var(--space-2);color:#fff;white-space:nowrap;pointer-events:none;background:#14120f9e;align-items:baseline;gap:.25em;font-size:11px;line-height:1.3;display:flex;position:absolute;bottom:0;left:0;right:0}.photo-credit-overlay>span{flex:none}.photo-credit-overlay a,.photo-credit-overlay .photo-credit-name{color:#fff;pointer-events:auto}.photo-credit-overlay a{padding:6px 2px}.photo-credit-overlay span:not(.photo-credit-name){padding:6px 0}.photo-credit-overlay .photo-credit-name{text-overflow:ellipsis;flex:0 auto;min-width:0;overflow:hidden}.recipe-hero-info{gap:var(--space-3);flex-direction:column;min-width:0;display:flex}.recipe-hero-info>p{margin:0}.recipe-detail-page h1{font-family:var(--heading);letter-spacing:-.01em;color:var(--text-h);overflow-wrap:anywhere;margin:0;font-size:clamp(28px,3.2vw,40px);font-weight:600;line-height:1.12}.recipe-actions{align-items:center;gap:var(--space-2);margin-top:var(--space-2);flex-wrap:wrap;display:flex}.recipe-owner-actions{align-items:center;gap:var(--space-3);font-size:var(--text-sm);flex-wrap:wrap;display:flex}.recipe-owner-actions .inline-text-button{font-size:var(--text-sm);margin:0}.recipe-hero-source{font-size:var(--text-sm);color:var(--text-muted)}.recipe-hero-source a{color:inherit}.recipe-body{gap:var(--space-6);margin-top:var(--space-6);padding-top:var(--space-6);border-top:1px solid var(--border);grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);display:grid}.recipe-detail-page h2{font-family:var(--sans);font-size:var(--text-lg);letter-spacing:-.01em;color:var(--text-h);margin:0 0 var(--space-3);font-weight:700}.recipe-section-head{justify-content:space-between;align-items:baseline;gap:var(--space-3);display:flex}.recipe-section-head .inline-text-button,.recipe-section-head button.secondary{font-size:var(--text-sm)}.recipe-list-group+.recipe-list-group{margin-top:var(--space-5)}.recipe-list-group h3{margin:0 0 var(--space-2);font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);font-weight:700}.recipe-ingredient-list{margin:0;padding:0;list-style:none}.recipe-ingredient-list li{padding:var(--space-2) 0;border-bottom:1px solid var(--border)}.recipe-ingredient-list li:last-child{border-bottom:none}.recipe-ingredient-amount{color:var(--text-h);font-weight:600}.recipe-step-list{counter-reset:step;margin:0;padding:0;list-style:none}.recipe-step-list li{counter-increment:step;padding:0 0 var(--space-5) 2.75rem;max-width:68ch;line-height:1.65;position:relative}.recipe-step-list li:before{content:counter(step);background:var(--accent-bg);width:1.9rem;height:1.9rem;color:var(--accent-strong);font-weight:700;font-size:var(--text-sm);border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;top:-.1rem;left:0}.recipe-link-out{padding:var(--space-4);border-radius:var(--radius-lg);background:var(--surface-2)}.recipe-link-out p{margin:0}.recipe-facts{margin-top:var(--space-6);padding-top:var(--space-6);border-top:1px solid var(--border)}button.icon-button{color:var(--text-h);border:1px solid var(--border);min-width:40px;padding-inline:var(--space-3);background:0 0}@media (hover:hover){button.icon-button:hover{background:var(--surface-2)}}button.icon-button[aria-pressed=true]{color:var(--accent);border-color:var(--accent-border)}.inline-text-button.danger-text{color:var(--danger)}@media (width<=720px){.recipe-hero,.recipe-body{gap:var(--space-4);grid-template-columns:minmax(0,1fr)}.recipe-hero-art{border-radius:var(--radius-lg)}}.recipe-browse-layout{align-items:flex-start;gap:1.5rem;display:flex}.recipe-main{flex:1;min-width:0}.cuisine-sidebar{flex-direction:column;flex:0 0 180px;gap:.15rem;display:flex;position:sticky;top:1rem}.cuisine-sidebar-head{margin:0 0 var(--space-2) .6rem;justify-content:space-between;align-items:baseline;display:flex}.cuisine-sidebar-head h2{font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);margin:0;font-weight:700}.cuisine-sidebar-head .inline-text-button{font-size:var(--text-xs);margin:0}.cuisine-sidebar-icon{text-align:center;flex:none;width:1.4em;display:inline-block}.cuisine-sidebar-link{width:100%;color:var(--text);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:center;gap:.5rem;padding:.4rem .6rem;font-size:14px;font-weight:500;text-decoration:none;transition:background .15s,color .15s;display:flex}@media (hover:hover){.cuisine-sidebar-link:hover{background:var(--code-bg)}}.cuisine-sidebar-link.active{background:var(--accent-bg);color:var(--accent-strong);font-weight:650}@media (width<=720px){.recipe-browse-layout{flex-direction:column;align-items:stretch}.recipe-main{width:100%}.cuisine-sidebar{scrollbar-width:none;-ms-overflow-style:none;flex-flow:row;flex:none;gap:.4rem;width:100%;margin-bottom:.85rem;padding-bottom:.15rem;position:static;overflow-x:auto;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 32px),#0000 100%);mask-image:linear-gradient(90deg,#000 calc(100% - 32px),#0000 100%)}.cuisine-sidebar::-webkit-scrollbar{display:none}.cuisine-sidebar-head{display:none}.cuisine-sidebar-link{white-space:nowrap;border:1px solid var(--border);border-radius:999px;flex:none;width:auto}.cuisine-sidebar-link.active{border-color:var(--accent-border)}}.browse-mode-toggle{flex-wrap:wrap;gap:.4rem;display:flex}.browse-controls{align-items:flex-end;gap:var(--space-3);margin-bottom:var(--space-5);flex-wrap:wrap;display:flex}.browse-controls .browse-control-row-fields{display:contents}.browse-search-row{flex:100%;order:-1}.browse-search{gap:var(--space-2);width:100%;min-width:0;max-width:560px;display:flex}.browse-search input{min-width:0;font-size:var(--text-base);border-radius:var(--radius-md);flex:1;padding:.7rem 1rem}.browse-control-row{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.browse-control-row-fields{align-items:flex-end}.identity-ring{box-shadow:0 0 0 2px hsl(var(--identity-h) var(--identity-s) var(--identity-l) / 55%);border-radius:50%;flex-shrink:0;display:inline-flex}.people-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));grid-auto-flow:dense;gap:var(--space-3);display:grid}@media (width>=900px){.people-card-rich{grid-column:span 2}}.people-card-sparse{gap:.35rem;padding:.7rem .85rem}.people-card{border-top:3px solid hsl(var(--identity-h) var(--identity-s) var(--identity-l));flex-direction:column;gap:.5rem;padding:.9rem 1rem;display:flex;position:relative}.people-card-specialties{flex-wrap:wrap;gap:.3rem;display:flex}.chip.chip-identity{background:hsl(var(--identity-h) var(--identity-s) var(--identity-l) / 14%);color:var(--text);border-color:hsl(var(--identity-h) var(--identity-s) var(--identity-l) / 45%)}.people-card-top{align-items:center;gap:.65rem;display:flex}.people-card-identity{min-width:0}.people-card-link{color:var(--text-h);text-overflow:ellipsis;white-space:nowrap;font-weight:600;text-decoration:none;display:block;overflow:hidden}.people-card-link:after{content:"";position:absolute;inset:0}.people-card-link:hover,.people-card-link:focus-visible{text-decoration:underline}.people-card-handle{color:var(--text);opacity:.6;font-size:.85rem}.people-card-bio{color:var(--text);opacity:.85;-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:0;font-size:.9rem;display:-webkit-box;overflow:hidden}.people-card-stats{color:var(--text);opacity:.7;margin:0;font-size:.82rem}.people-card-pins{gap:.4rem;display:flex}.people-card-pin{border-radius:var(--radius-md);border:1px solid var(--border);min-width:0;color:var(--text);background:var(--surface);flex:1;text-decoration:none;position:relative;overflow:hidden}.people-card-pin-name{white-space:nowrap;text-overflow:ellipsis;padding:.2rem .35rem;font-size:.72rem;display:block;overflow:hidden}.people-card-cooked{color:var(--text);overflow-wrap:anywhere;margin:0;font-size:.82rem}.people-card-cooked-label{opacity:.7}.people-card-cooked-link{color:inherit;position:relative}.people-card-follow{align-self:flex-start;margin-top:auto;position:relative}.feed-entries{align-items:start;gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(240px,1fr));grid-auto-flow:row;display:grid}.feed-entry{border-left:3px solid hsl(var(--identity-h) var(--identity-s) var(--identity-l));flex-direction:column;gap:.6rem;padding:.85rem 1rem;display:flex}.feed-entry-plain{border-left-width:2px;padding:.65rem .85rem}.feed-entry-compact{border-left-width:3px;padding:.75rem .95rem}.feed-entry-standard{border-left-width:3px;padding:.85rem 1.05rem}.feed-entry-generous{border-left-width:4px;padding:.95rem 1.1rem}.feed-entry-rich{border-left-width:5px;padding:1.05rem 1.2rem}.feed-entry-has-note{padding-bottom:1rem}.feed-entry-person{align-items:center;gap:.6rem;display:flex;position:relative}.feed-entry-person-identity{flex-wrap:wrap;align-items:baseline;gap:0 .4rem;min-width:0;display:flex}.feed-entry-person-link{color:var(--text-h);font-weight:600;text-decoration:none}.feed-entry-person-link:after{content:"";position:absolute;inset:0}.feed-entry-person-link:hover,.feed-entry-person-link:focus-visible{text-decoration:underline}.feed-entry-person-handle,.feed-entry-person-cadence{color:var(--text);opacity:.6;font-size:.82rem}.feed-entry-recipe{align-items:flex-start;gap:.6rem;display:flex;position:relative}.feed-entry-recipe-body{flex:1;min-width:0}.feed-entry-recipe-link{color:var(--text-h);font-size:1.05rem;font-weight:600;text-decoration:none}.feed-entry-recipe-link:after{content:"";position:absolute;inset:0}.feed-entry-recipe-link:hover,.feed-entry-recipe-link:focus-visible{text-decoration:underline}.feed-entry-recipe-chips{flex-wrap:wrap;align-items:center;gap:.35rem;margin-top:.35rem;display:flex}.feed-entry-recipe-chips .chip{background:hsl(var(--identity-h) var(--identity-s) var(--identity-l) / 14%);color:var(--text);border-color:hsl(var(--identity-h) var(--identity-s) var(--identity-l) / 45%)}.feed-entry-recipe-time{color:var(--text);opacity:.65;font-size:.82rem}.feed-entry-hero{flex-direction:column;display:flex;position:relative}.feed-entry-hero .feed-entry-recipe-art{border-radius:var(--radius-md);width:100%}.feed-entry-hero .feed-entry-recipe-body,.feed-entry-hero+.feed-entry-person{margin-top:.6rem}.post-recipes-strip{flex-direction:column;gap:.5rem;display:flex}.feed-entry-actions{border-top:1px solid var(--border);align-items:center;gap:1rem;margin-top:.5rem;padding-top:.5rem;display:flex}.feed-entry-action{border-radius:var(--radius-sm,6px);color:var(--text);opacity:.7;cursor:pointer;background:0 0;border:none;align-items:center;gap:.3rem;padding:.2rem .4rem;font-size:.85rem;text-decoration:none;display:inline-flex}.feed-entry-action:hover,.feed-entry-action:focus-visible{opacity:1;background:var(--accent-bg)}.feed-entry-action-active{opacity:1;color:var(--accent-strong)}.feed-entry-note{border-left:2px solid var(--border);color:var(--text);opacity:.85;margin:.4rem 0 0;padding:.1rem 0 .1rem .6rem;font-size:.92rem;font-style:italic}.feed-entry-rich .feed-entry-note{background:hsl(var(--identity-h) var(--identity-s) var(--identity-l) / 10%);border-radius:0 var(--radius-md) var(--radius-md) 0;padding:.3rem .6rem}.recipe-owner-note{border-left:2px solid var(--border);color:var(--text);opacity:.85;max-width:60ch;margin:.5rem 0;padding:.2rem 0 .2rem .75rem;font-style:italic}@media (width<=480px){.feed-entry-recipe-art{aspect-ratio:1;width:36px!important;height:auto!important}.feed-entry-hero .feed-entry-recipe-art{aspect-ratio:4/3;width:100%!important;height:auto!important}}.browse-field{flex-direction:column;gap:.15rem;display:flex}.browse-field-label{font-size:var(--text-xs);color:var(--text-muted);font-weight:600}.recipe-tiles{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(260px,1fr));display:grid}.recipe-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);flex-direction:column;transition:box-shadow .2s,transform .2s;display:flex;position:relative;overflow:hidden}@media (hover:hover){.recipe-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.recipe-card:hover .recipe-card-art img{transform:scale(1.04)}}.recipe-card-media{position:relative}.recipe-card-art{aspect-ratio:3/2}.recipe-card-art img{transition:transform .35s}@media (prefers-reduced-motion:reduce){.recipe-card,.recipe-card-art img{transition:none}}.recipe-card-match{top:var(--space-2);left:var(--space-2);position:absolute}.recipe-card-body{padding:var(--space-3) var(--space-4) var(--space-4);gap:var(--space-1);flex-direction:column;display:flex}.recipe-card-title{font-weight:600;font-size:var(--text-base);color:var(--text-h);-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.3;display:-webkit-box;overflow:hidden}.recipe-card-title-link{text-decoration:none}.recipe-card-title-link:after{content:"";position:absolute;inset:0}.recipe-card-title-link:focus-visible:after{outline:2px solid var(--accent);outline-offset:-2px;border-radius:var(--radius-md)}.recipe-card-chips{gap:var(--space-1);flex-wrap:wrap;display:flex}.recipe-card-meta{color:var(--text-muted);font-size:var(--text-sm)}.recipe-card-why{color:var(--text-muted);font-size:var(--text-sm);margin:0}.recipe-card-notes{gap:var(--space-1) var(--space-3);margin-top:var(--space-1);font-size:var(--text-xs);color:var(--text-muted);flex-wrap:wrap;display:flex}.recipe-card-notes a{color:var(--accent-strong);position:relative}.recipe-card-density-low-coverage{opacity:.6;filter:grayscale(40%)}.recipe-card-missing{align-items:center;gap:var(--space-1);flex-wrap:wrap;display:flex}.recipe-card-missing-label{color:var(--text);opacity:.6;font-weight:600;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.03em}.chip{font-size:var(--text-xs);white-space:nowrap;background:var(--accent-bg);color:var(--accent-strong);border:1px solid var(--accent-border);border-radius:999px;align-items:center;padding:.15rem .55rem;font-weight:600;display:inline-flex}.chip-muted{background:var(--bg);color:var(--text);opacity:.85;border-color:var(--border)}.kitchen-mine-filter{gap:.5rem;margin:0 0 1rem;display:flex}.chip-toggle{font-size:var(--text-xs);white-space:nowrap;background:var(--bg);color:var(--text);border:1px solid var(--border);cursor:pointer;border-radius:999px;align-items:center;padding:.25rem .75rem;font-weight:600;transition:background .15s,color .15s,border-color .15s;display:inline-flex}@media (hover:hover){.chip-toggle:not(.active):hover{background:var(--code-bg)}}.chip-toggle.active{background:var(--accent-bg);color:var(--accent-strong);border-color:var(--accent-border)}.recipe-card-favorite-overlay{top:var(--space-2);right:var(--space-2);color:#fff;cursor:pointer;z-index:1;background:#14120f73;border:none;border-radius:50%;justify-content:center;align-items:center;width:30px;height:30px;font-size:1.05rem;line-height:1;transition:background .15s,transform .15s;display:flex;position:absolute}@media (hover:hover){.recipe-card-favorite-overlay:hover{background:#14120fa6}}.recipe-card-skeleton{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.recipe-card-skeleton-banner{aspect-ratio:3/2;background:var(--code-bg)}.recipe-card-skeleton-body{padding:var(--space-3) var(--space-4) var(--space-4);gap:var(--space-2);flex-direction:column;display:flex}.recipe-card-skeleton-line{border-radius:var(--radius-sm);background:var(--code-bg);height:12px}.recipe-card-skeleton-line.short{width:55%}@media (prefers-reduced-motion:no-preference){.recipe-card-skeleton-banner,.recipe-card-skeleton-line{background:linear-gradient(90deg, var(--code-bg) 25%, var(--border) 50%, var(--code-bg) 75%);background-size:200% 100%;animation:1.4s ease-in-out infinite skeleton-shimmer}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.recipe-tiles .recipe-card{animation:.2s ease-out both recipe-card-in}.recipe-tiles .recipe-card:first-child{animation-delay:0s}.recipe-tiles .recipe-card:nth-child(2){animation-delay:20ms}.recipe-tiles .recipe-card:nth-child(3){animation-delay:40ms}.recipe-tiles .recipe-card:nth-child(4){animation-delay:60ms}.recipe-tiles .recipe-card:nth-child(5){animation-delay:80ms}.recipe-tiles .recipe-card:nth-child(6){animation-delay:.1s}.recipe-tiles .recipe-card:nth-child(7){animation-delay:.12s}.recipe-tiles .recipe-card:nth-child(8){animation-delay:.14s}@keyframes recipe-card-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}button:not(.secondary):not(.danger):active{transform:scale(.98)}}.pantry-columns{columns:280px 3;column-gap:var(--space-6)}.pantry-section{margin-bottom:var(--space-6);break-inside:avoid-column}.pantry-section .section-head{padding-bottom:var(--space-2);border-bottom:1px solid var(--border);justify-content:space-between;align-items:baseline;gap:.5rem;display:flex}.pantry-section h2{font-family:var(--sans);font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);margin:0;font-weight:700}.pantry-section .section-count{font-size:var(--text-xs);color:var(--text-muted);font-weight:600}.pantry-toolbar{align-items:center;gap:var(--space-3);margin-bottom:var(--space-4);flex-wrap:wrap;display:flex}.pantry-toolbar-add{flex:280px;min-width:0;max-width:400px}.pantry-filter-input{flex:140px;min-width:0;max-width:260px}.pantry-toolbar-actions{gap:var(--space-2);margin-left:auto;display:flex}.pantry-list{margin-top:var(--space-5)}.pantry-tile{justify-content:space-between;align-items:center;gap:var(--space-3);border-bottom:1px solid var(--border);min-height:40px;display:flex}.pantry-tile .name{min-width:0;font-size:var(--text-base);color:var(--text-h);overflow-wrap:anywhere;flex:1;font-weight:500;text-decoration:none}@media (hover:hover){.pantry-tile .name:hover{color:var(--accent-strong);text-decoration:underline}}.pantry-tile .qty-row{flex:none;align-items:center;gap:2px;display:flex}.pantry-tile:not(.pantry-tile-editing) .qty-row>button.secondary{width:28px;height:28px;color:var(--text-muted);background:0 0;border:none;border-radius:50%;padding:0;font-size:16px;line-height:1}@media (hover:hover){.pantry-tile:not(.pantry-tile-editing) .qty-row>button.secondary:hover{background:var(--surface-2);color:var(--text-h)}}.pantry-tile .qty-text{text-align:center;min-width:4.5rem;font-size:var(--text-sm);font-variant-numeric:tabular-nums;color:var(--text);white-space:nowrap}.pantry-tile .qty-row button.unit-cycle-btn,.grocery-row button.unit-cycle-btn{border-radius:var(--radius-sm);width:auto;min-width:24px;height:auto;min-height:24px;color:var(--accent-strong);font-size:var(--text-sm);text-underline-offset:3px;background:0 0;border:none;justify-content:center;align-items:center;padding:0 .25rem;font-weight:600;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;display:inline-flex}.pantry-tile-editing{padding:var(--space-2) 0;border-bottom-style:dashed;border-bottom-color:var(--accent-border);flex-wrap:wrap}.pantry-tile-editing .name{flex:100%}.pantry-tile-editing .qty-row{gap:.4rem}.pantry-tile-editing input,.pantry-tile-editing select{font:inherit;padding:.25rem .35rem;font-size:13px}.pantry-tile-editing .qty-row button{white-space:nowrap;flex:none;padding:.2rem .4rem;font-size:12px}.edit-hint{color:var(--text);opacity:.75;margin-top:.75rem;font-size:13px}.nutrition-tiles{grid-template-columns:repeat(auto-fill,minmax(135px,1fr));gap:.6rem;display:grid}.nutrition-tile{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-md);flex-direction:column;gap:.2rem;padding:.7rem .85rem;display:flex}.nutrition-tile .value{color:var(--text-h);font-size:1.35rem;font-weight:650}.nutrition-tile .label{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.03em;opacity:.6;font-weight:600}.nutrition-tile-subs{border-top:1px solid var(--border);flex-direction:column;gap:.15rem;margin-top:.35rem;padding-top:.35rem;display:flex}.nutrition-tile-sub{opacity:.8;justify-content:space-between;gap:.5rem;font-size:.78rem;display:flex}.nutrition-ring-row{gap:var(--space-5);flex-wrap:wrap;display:flex}.nutrition-ring{text-align:center;flex-direction:column;align-items:center;gap:.3rem;display:flex}.nutrition-ring-value{font-family:var(--sans);fill:var(--text-h);font-size:20px;font-weight:650}.nutrition-ring-target{font-family:var(--sans);fill:var(--text);opacity:.65;font-size:13px}.nutrition-ring-label{font-size:var(--text-xs);color:var(--text);opacity:.6;text-transform:uppercase;letter-spacing:.03em;font-weight:600}.error-banner{color:var(--danger);background:var(--danger-bg);border:1px solid color-mix(in srgb, var(--danger) 25%, transparent);border-radius:6px;margin-bottom:1rem;padding:.5rem .75rem;font-size:14px}.success-banner{color:var(--success);background:var(--success-bg);border:1px solid color-mix(in srgb, var(--success) 25%, transparent);border-radius:6px;padding:.5rem .75rem;font-size:14px}.warning-banner{color:var(--warning);background:var(--warning-bg);border:1px solid color-mix(in srgb, var(--warning) 30%, transparent);border-radius:6px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.6rem;margin-bottom:1rem;padding:.6rem .85rem;font-size:14px;display:flex}.ingredient-pantry-missing{color:var(--danger)}.ingredient-pantry-insufficient{color:var(--warning)}.ingredient-pantry-tag{opacity:.85;font-size:.85em}.page-header{justify-content:space-between;align-items:baseline;gap:var(--space-2);flex-wrap:wrap;display:flex}.text-muted{color:var(--text);opacity:.7;font-size:var(--text-sm)}.empty-state{text-align:center;align-items:center;gap:var(--space-3);padding:var(--space-6) var(--space-4);flex-direction:column;display:flex}.empty-state p{color:var(--text);opacity:.75;max-width:28rem}.modal-overlay{z-index:100;background:#26222073;justify-content:center;align-items:center;padding:1.5rem;display:flex;position:fixed;inset:0}.modal{box-sizing:border-box;width:100%;max-width:520px;max-height:100%;padding:1.1rem 1.3rem 1.3rem;overflow-y:auto}.modal-header{justify-content:space-between;align-items:baseline;gap:.75rem;display:flex}.modal-header h2{margin:0}.modal-close{padding:.15rem .55rem;font-size:18px;line-height:1}.tour-card{border:2px solid var(--accent-strong);box-shadow:0 12px 32px #00000059}.modal-actions{justify-content:flex-end;gap:.6rem;margin-top:1.25rem;display:flex}.modal-wide{max-width:960px}.complete-recipe-rows{flex-direction:column;gap:.5rem;margin-top:.6rem;display:flex}.complete-recipe-row{align-items:center;gap:.5rem;display:flex}.complete-recipe-row-check{flex:1;align-items:center;gap:.5rem;min-width:0;display:flex}.complete-recipe-row .name{flex:1;min-width:0}.complete-recipe-row .hint{color:var(--text);opacity:.6;font-size:13px}.complete-recipe-save{margin:-.2rem 0 .2rem 1.6rem;font-size:13px}.complete-recipe-save .hint{opacity:.6;display:block}.recipe-note,.complete-recipe-note{margin-top:var(--space-5)}.recipe-note .hint,.complete-recipe-note .hint{color:var(--text);opacity:.6;margin:0 0 var(--space-2);font-size:13px;display:block}.recipe-note textarea,.complete-recipe-note textarea{box-sizing:border-box;resize:vertical;width:100%}.recipe-note-text{margin:0 0 var(--space-2);white-space:pre-wrap;overflow-wrap:anywhere;max-width:60ch}.recipe-note-actions{justify-content:flex-end;align-items:center;gap:var(--space-2);margin-top:var(--space-2);flex-wrap:wrap;display:flex}.recipe-note-actions .hint{margin:0 auto 0 0}.complete-recipe-amounts-hint{margin:.4rem 0 0;font-size:13px}.cook-post-box,.post-report-picker{gap:var(--space-2);margin-top:var(--space-3);padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);flex-direction:column;display:flex}.cook-post-caption{flex-direction:column;align-items:flex-end;gap:2px;display:flex}.cook-post-caption textarea{box-sizing:border-box;resize:vertical;width:100%}.cook-post-caption .hint{opacity:.6;font-size:12px}.cook-post-row{align-items:center;gap:var(--space-2);margin:var(--space-2) 0 0;flex-wrap:wrap;font-size:13px;display:flex}.cook-post-state{opacity:.75}.cook-post-actions{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.post-report-picker fieldset{gap:var(--space-1);border:0;flex-direction:column;margin:0;padding:0;font-size:13px;display:flex}.post-report-picker input[type=text]{box-sizing:border-box;width:100%}.post-author-controls{margin:0 0 var(--space-4)}.feed-entry-verb{color:var(--text);opacity:.8}.feed-entry-verb a{z-index:1;position:relative}.feed-entry-hidden-note{margin:0;font-size:13px;font-weight:600}.complete-recipe-note h3{margin:0 0 var(--space-1);font-size:var(--text-base)}.grocery-qty-input{width:3.5rem;padding:.1rem .3rem;font-size:13px}.complete-recipe-rows:has(>.grocery-row){gap:0;margin-top:0}.grocery-row{min-height:44px;padding:var(--space-1) 0;border-bottom:1px solid var(--border);column-gap:var(--space-3);flex-wrap:wrap}.modal-grocery{max-width:720px}.modal-grocery .pantry-columns{columns:1}.grocery-row .complete-recipe-row-check{flex:9rem}.grocery-row .grocery-qty-input{width:4rem;height:32px;min-height:32px;padding:0 var(--space-2);text-align:right}.grocery-row .grocery-qty{align-items:center;gap:var(--space-1);font-variant-numeric:tabular-nums;min-width:6.5rem;display:inline-flex}.grocery-row-price{text-align:right;min-width:3.5rem;color:var(--text-muted);font-size:var(--text-xs);font-variant-numeric:tabular-nums}button.grocery-row-action{color:var(--text-muted);font-size:var(--text-xs);background:0 0;border-color:#0000;padding:.2rem .4rem;font-weight:500}@media (hover:hover){button.grocery-row-action:hover{background:var(--accent-bg);color:var(--accent-strong);border-color:#0000}}.meal-calendar{margin-top:.75rem}.meal-calendar-picking-toolbar{flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.75rem;display:flex}.meal-calendar-day-names{flex-direction:column;gap:.15rem;margin:.25rem 0 0;padding:0;list-style:none;display:flex}.meal-calendar-day-name{font:inherit;color:var(--text);text-align:left;cursor:pointer;background:0 0;border:none;width:100%;padding:.15rem 0;font-size:14px}.meal-calendar-day-name:hover,.meal-calendar-day-name:focus-visible{color:var(--text-h);text-decoration:underline}.meal-calendar-day.detailed{align-items:center;gap:var(--space-3);padding:var(--space-3);grid-template-columns:7.5rem 1fr;display:grid}.meal-calendar-day.detailed .meal-calendar-day-names{gap:var(--space-2);flex-flow:wrap;margin:0}.meal-calendar-day.detailed .meal-calendar-day-name{align-items:center;gap:var(--space-2);width:auto;max-width:20rem;padding:0 var(--space-3) 0 0;background:var(--surface-2);border-radius:var(--radius-md);display:flex;overflow:hidden}.meal-calendar-day-thumb{flex:none;width:48px}.meal-calendar-day-name-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}@media (width<=720px){.meal-calendar-day.detailed{gap:var(--space-2);grid-template-columns:1fr}.meal-calendar-day.detailed .meal-calendar-day-name{max-width:100%}.page-header h1{margin-bottom:.5rem;font-size:1.5rem}.section-tabs{margin-bottom:.75rem}}@media (width>=721px){.section-title-text{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}}.getting-started{padding:var(--space-3) var(--space-4);margin:var(--space-3) 0 var(--space-5);background:var(--surface-2);box-shadow:none;font-size:var(--text-sm);border-color:#0000}.getting-started-head{justify-content:space-between;align-items:baseline;gap:.5rem;display:flex}.getting-started-toggle{font:inherit;color:inherit;cursor:pointer;text-align:left;background:0 0;border:none;flex:1;align-items:baseline;gap:.4rem;min-width:0;padding:0;display:flex}.getting-started-caret{opacity:.6;font-size:.8em}.getting-started-next{margin:.2rem 0 0}.page-title-tab{opacity:.7;font-weight:400}.nav-drawer-section+.nav-drawer-section{margin-top:1rem}.nav-drawer-heading{font-size:var(--text-xs);letter-spacing:.03em;text-transform:uppercase;opacity:.6;color:var(--text);margin:0 0 .3rem;font-weight:600}.app-nav-menu{padding:.4rem .7rem;font-size:20px;line-height:1}.nav-drawer-scrim{z-index:60;background:#0006;position:fixed;inset:0}.nav-drawer{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;gap:1rem;width:min(78vw,300px);padding:1rem .9rem;animation:.16s ease-out nav-drawer-in;display:flex;position:absolute;top:0;bottom:0;left:0;overflow-y:auto}@media (prefers-reduced-motion:reduce){.nav-drawer{animation:none}}@keyframes nav-drawer-in{0%{transform:translate(-100%)}to{transform:translate(0)}}.nav-drawer-links,.nav-drawer-chrome{flex-direction:column;gap:.4rem;display:flex}.nav-drawer-chrome{border-top:1px solid var(--border);margin-top:auto;padding-top:.9rem}.nav-drawer .app-nav-link,.nav-drawer button{text-align:left;justify-content:flex-start;width:100%}.planner-tabs-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;display:flex}.grocery-list-controls{flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:.5rem;display:flex}.grocery-extras{border-top:1px solid var(--border);margin:.75rem 0 1rem;padding-top:.75rem}.grocery-extras h3{margin:0 0 .4rem;font-size:14px}.grocery-extras-list{flex-direction:column;gap:.2rem;margin:0 0 .5rem;padding:0;list-style:none;display:flex}.grocery-extras-list li{align-items:center;gap:.5rem;display:flex}.grocery-extras-list label{flex:1;align-items:center;gap:.4rem;min-width:0;display:flex}.grocery-extras-add{flex-wrap:wrap;gap:.4rem;display:flex}.grocery-extras-add input{flex:12rem;min-width:0}.meal-calendar-next-trip{border-left:3px solid var(--accent-strong);background:var(--surface);color:var(--text);border-radius:0 8px 8px 0;margin:0 0 .75rem;padding:.5rem .8rem;font-size:14px}.meal-calendar-window-empty{border:1px dashed var(--border);color:var(--text);opacity:.85;border-radius:8px;margin:0 0 .75rem;padding:.6rem .8rem;font-size:14px}.meal-calendar-day-add{opacity:0;color:var(--text);pointer-events:none;font-size:15px;line-height:1;transition:opacity .12s;position:absolute;bottom:.3rem;right:.35rem}.meal-calendar-day:hover .meal-calendar-day-add,.meal-calendar-day:focus-within .meal-calendar-day-add{opacity:.55}@media (pointer:coarse){.meal-calendar-day-add{opacity:.35}}.meal-calendar-nav{flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.75rem;display:flex}.overflow-menu{display:inline-flex;position:relative}.overflow-menu-panel{z-index:40;background:var(--surface);border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:.35rem;min-width:12rem;padding:.5rem;display:flex;position:absolute;top:calc(100% + .3rem);left:0;box-shadow:0 6px 20px #00000026}.overflow-menu-panel button{text-align:left;justify-content:flex-start;width:100%}.meal-plan-month-label-button{cursor:pointer;font:inherit;background:0 0;border:none;padding:0}.meal-plan-month-label-button:hover,.meal-plan-month-label-button:focus-visible{text-decoration:underline}.segmented,.meal-plan-view-picker{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-md);gap:2px;padding:3px;display:inline-flex}.meal-plan-view-picker{margin-left:auto}button.segmented-option,button.meal-plan-view-option{color:var(--text-muted);background:0 0;border-color:#0000;padding:.3rem .9rem;font-weight:500}button.segmented-option.active,button.meal-plan-view-option.active{background:var(--surface);color:var(--text-h);box-shadow:0 1px 2px #00000014}@media (hover:hover){button.segmented-option:not(.active):hover,button.meal-plan-view-option:not(.active):hover{color:var(--text-h);background:0 0}}.meal-plan-month-label{margin:0 var(--space-2);color:var(--text-h);font-family:var(--heading);white-space:nowrap;font-size:1.5rem;font-weight:600}.meal-plan-toolbar{flex-wrap:wrap;align-items:center;gap:.5rem;margin:.25rem 0 .75rem;display:flex}.meal-calendar-weekdays,.meal-calendar-grid{grid-template-columns:repeat(7,1fr);gap:.5rem;display:grid}.meal-calendar-weekdays{margin-bottom:.4rem}.meal-calendar-weekday{text-align:center;font-size:var(--text-xs);color:var(--text);opacity:.6;text-transform:uppercase;letter-spacing:.03em;font-weight:600}.meal-calendar-grid{margin-bottom:.5rem}.meal-calendar-day{background:var(--surface);border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:.3rem;min-width:0;height:88px;min-height:0;padding:.4rem;transition:border-color .15s,background .15s;display:flex;position:relative}.meal-calendar-day-blank{background:0 0;border:none}.meal-calendar-day.today{border-color:var(--accent-strong);box-shadow:inset 0 0 0 2px var(--accent-border)}.meal-calendar-day.trip{background:var(--accent-bg)}.meal-calendar-day.past{background:var(--bg)}.meal-calendar-day.past .meal-calendar-day-date{opacity:.55}.meal-calendar-day.past.trip{background:var(--accent-bg)}.meal-calendar-day.drop-over{border-color:var(--accent-strong);box-shadow:0 0 0 2px var(--accent-bg)}.meal-calendar-day.not-current-month{opacity:.45}.meal-calendar-day.grocery-selected{background:var(--accent-bg);border-color:var(--accent-strong)}.meal-calendar-day.pickable{cursor:pointer}@media (hover:hover){.meal-calendar-day.pickable:hover{border-color:var(--accent-strong)}}.meal-calendar-day.pickable:focus-visible{box-shadow:0 0 0 2px var(--accent-bg);border-color:var(--accent-strong);outline:none}.meal-calendar-day-head{flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.meal-calendar-day-date{color:var(--text-h);background:0 0;border:none;padding:0;font-size:13px;font-weight:600}.meal-calendar-day.today .meal-calendar-day-date{color:var(--accent-strong)}.meal-calendar-trip-badge{cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;min-width:24px;min-height:24px;margin:-6px;padding:6px;font-size:13px;line-height:1;display:inline-flex}.meal-calendar-nutrition-badge{text-align:center;cursor:pointer;border:none;border-radius:999px;width:16px;height:16px;padding:0;font-size:11px;font-weight:700;line-height:16px}.meal-calendar-nutrition-badge.status-good{background:var(--status-good-bg);color:var(--status-good-fg)}.meal-calendar-nutrition-badge.status-flagged{background:var(--status-warn-bg);color:var(--status-warn-fg)}.meal-calendar-day-count{border:1px solid var(--accent-border);background:var(--accent-bg);color:var(--accent);cursor:pointer;white-space:nowrap;text-overflow:ellipsis;border-radius:999px;align-self:flex-start;align-items:center;gap:.3rem;max-width:100%;margin-top:auto;padding:.2rem .5rem;font-size:12px;font-weight:600;line-height:1.4;display:flex;overflow:hidden}@media (hover:hover){.meal-calendar-day-count:hover{border-color:var(--accent-strong)}}.meal-calendar-occurrence-schedule{flex-basis:100%;order:99;align-items:center;gap:.4rem;display:flex}.meal-calendar-occurrence-schedule input[type=date]{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:6px;padding:.2rem .35rem}.meal-calendar-occurrence-schedule button{min-height:0;padding:.2rem .5rem;font-size:12px}.meal-calendar-occurrence-pantry{flex-basis:100%;order:98}.meal-calendar-occurrence-pantry select,.meal-plan-log-entry select.deduct-pantry-select{font:inherit;border:1px solid var(--border);background:var(--surface);max-width:100%;color:var(--text);border-radius:6px;padding:.2rem .35rem;font-size:12px}.meal-calendar-occurrence-pantry select:disabled,.meal-plan-log-entry select.deduct-pantry-select:disabled{opacity:.25;cursor:default}.meal-calendar-occurrence{background:var(--accent-bg);border:1px solid var(--accent-border);cursor:grab;border-radius:6px;flex-wrap:wrap;flex-shrink:0;align-items:center;gap:.3rem;min-width:0;padding:.25rem .4rem;font-size:12px;display:flex}.meal-calendar-occurrence .name{min-width:0;color:var(--text-h);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.meal-calendar-incomplete-badge{text-align:center;background:var(--status-warn-bg);width:16px;height:16px;color:var(--status-warn-fg);border-radius:999px;flex-shrink:0;font-size:11px;font-weight:700;line-height:16px;display:inline-block}.meal-calendar-occurrence-remove,.meal-calendar-occurrence-made-action,.meal-calendar-occurrence-step{color:var(--text);opacity:.6;cursor:pointer;background:0 0;border:none;padding:0;font-size:14px;line-height:1}.meal-calendar-occurrence-remove:disabled,.meal-calendar-occurrence-made-action:disabled,.meal-calendar-occurrence-step:disabled{opacity:.25;cursor:default}@media (hover:hover){.meal-calendar-occurrence-remove:hover:not(:disabled),.meal-calendar-occurrence-made-action:hover:not(:disabled),.meal-calendar-occurrence-step:hover:not(:disabled){opacity:1}}.meal-calendar-occurrence-made-action{color:var(--accent-strong,var(--text));opacity:.85;font-size:15px}.meal-calendar-occurrence-made{color:var(--accent-strong,var(--text));opacity:.55;font-size:14px;line-height:1}.meal-calendar-unscheduled{background:var(--surface);border:1px dashed var(--border);border-radius:8px;margin-top:1rem;padding:.85rem 1rem}.meal-calendar-unscheduled.drop-over{border-color:var(--accent-strong);box-shadow:0 0 0 2px var(--accent-bg)}.meal-calendar-unscheduled-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.6rem;display:flex}.meal-calendar-unscheduled-head h3{color:var(--text-h);margin:0}.meal-calendar-unscheduled-list{flex-wrap:wrap;gap:.4rem;display:flex}.meal-calendar-unscheduled-list .meal-calendar-occurrence{flex:none}.meal-calendar-unscheduled-empty{color:var(--text);opacity:.6;margin:0;font-size:13px}.meal-calendar-nutrition-rows{flex-direction:column;gap:.4rem;display:flex}.meal-calendar-nutrition-row{background:var(--bg);border:1px solid var(--border);border-radius:8px;justify-content:space-between;align-items:center;gap:.75rem;padding:.5rem .7rem;display:flex}.meal-calendar-nutrition-row .metric{color:var(--text-h);font-weight:600}.meal-calendar-nutrition-row .target{opacity:.7;font-weight:400}.meal-calendar-nutrition-row .status-label{white-space:nowrap;border-radius:999px;padding:.15rem .5rem;font-size:12px;font-weight:600}.meal-calendar-nutrition-row.status-good .status-label{background:var(--status-good-bg);color:var(--status-good-fg)}.meal-calendar-nutrition-row.status-short .status-label,.meal-calendar-nutrition-row.status-low .status-label,.meal-calendar-nutrition-row.status-high .status-label{background:var(--status-warn-bg);color:var(--status-warn-fg)}.meal-calendar-nutrition-row.status-no_goal .status-label{background:var(--border);color:var(--text);opacity:.75}.meal-templates-section{background:var(--surface);border:1px solid var(--border);border-radius:8px;margin-top:1rem;padding:.85rem 1rem}.meal-templates-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.6rem;display:flex}.meal-templates-head h3{color:var(--text-h);margin:0}.meal-templates-empty{color:var(--text);opacity:.7;margin:0;font-size:13px}.meal-templates-list{flex-direction:column;gap:.35rem;margin:0;padding:0;list-style:none;display:flex}.meal-templates-item{background:var(--accent-bg);border:1px solid var(--accent-border);border-radius:6px;align-items:center;gap:.5rem;padding:.4rem .6rem;font-size:13px;display:flex}.meal-templates-item .name{min-width:0;color:var(--text-h);text-overflow:ellipsis;white-space:nowrap;flex:1;font-weight:600;overflow:hidden}.meal-templates-count{opacity:.7;white-space:nowrap;font-size:12px}.meal-templates-delete{color:var(--text);opacity:.6;cursor:pointer;background:0 0;border:none;padding:0;font-size:14px;line-height:1}@media (hover:hover){.meal-templates-delete:hover{opacity:1}}.template-builder-lines{flex-direction:column;gap:.35rem;max-height:220px;margin:.75rem 0;padding:0;list-style:none;display:flex;overflow-y:auto}.template-builder-line{background:var(--bg);border:1px solid var(--border);border-radius:6px;align-items:center;gap:.5rem;padding:.35rem .5rem;font-size:13px;display:flex}.template-builder-line .name{min-width:0;color:var(--text-h);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.template-builder-line input[type=number]{box-sizing:border-box;width:48px;padding:.2rem .3rem}.recipe-form-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.75rem;display:grid}.recipe-form-grid label{color:var(--text);opacity:.85;flex-direction:column;gap:.3rem;font-size:13px;display:flex}.recipe-form-row{flex-wrap:wrap;align-items:center;gap:.5rem;padding:.6rem .75rem;display:flex}.recipe-form-row .field-ingredient{flex:200px;min-width:0}.recipe-form-row .field-qty{flex:none;width:70px}.recipe-form-row .field-unit{flex:none;width:110px}.recipe-form-row .field-section{flex:none;width:130px}.recipe-form-row .field-notes{flex:120px;min-width:0}.recipe-form-row .field-step{flex:200px;min-width:0;min-height:40px}.recipe-form-row .field-step-number{color:var(--text-h);font-weight:600}.recipe-form-row-actions{flex-shrink:0;align-items:center;gap:.5rem;display:flex}@media (width<=720px){.recipe-form-row{flex-direction:column;align-items:stretch}.recipe-form-row .field-ingredient,.recipe-form-row .field-qty,.recipe-form-row .field-unit,.recipe-form-row .field-section,.recipe-form-row .field-notes,.recipe-form-row .field-step{box-sizing:border-box;flex:none;width:100%}.recipe-form-row .field-step{min-height:5rem}.recipe-form-row .field-step-number{align-self:flex-start}.recipe-form-row-actions{justify-content:flex-end}.recipe-form-grid{grid-template-columns:repeat(auto-fit,minmax(130px,1fr))}}.reference-panel{margin-bottom:1rem}.reference-panel-disclaimer{color:var(--text);opacity:.85;margin:0 0 .6rem;font-size:13px}.reference-panel-disclaimer:last-of-type{margin-bottom:.8rem}.reference-instructions{color:var(--text);-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;flex-direction:column;gap:.5rem;margin:0;padding-left:1.4rem;font-size:14px;display:flex}.reference-step-section{color:var(--text-h)}.recipe-form-grid .field-name{grid-column:1/-1}code{font-family:var(--mono);color:var(--text-h);background:var(--code-bg);border-radius:4px;padding:3px 6px;font-size:13px;line-height:135%;display:inline-flex}.app-nav{background:color-mix(in srgb, var(--bg) 88%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border);z-index:10;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem .6rem;padding:.85rem 1rem;display:flex;position:sticky;top:0}.app-nav-left,.app-nav-right{flex-wrap:wrap;align-items:center;gap:.3rem;display:flex}.app-nav-right{gap:.35rem}.app-nav-brand{color:var(--text-h);font-family:var(--heading);white-space:nowrap;align-items:center;gap:.4rem;margin-right:.4rem;font-size:1.15rem;font-weight:650;display:inline-flex}.app-nav-link{color:var(--text);background:0 0;border-radius:6px;align-items:center;padding:.4rem .5rem;font-size:14px;font-weight:500;text-decoration:none;transition:background .15s,color .15s;display:inline-flex}.app-nav-link.active{color:var(--accent-strong);background:var(--accent-bg);font-weight:600}.page-header:has(+.section-tabs) h1{margin-bottom:8px}.section-tabs{border-bottom:1px solid var(--border);scrollbar-width:none;-ms-overflow-style:none;align-items:flex-end;gap:.2rem;margin-bottom:.85rem;display:flex;overflow-x:auto}.section-tabs::-webkit-scrollbar{display:none}@media (width<=720px){.section-tabs{display:none}}.tab-with-extra{align-items:center;gap:.35rem;display:inline-flex}.section-tabs .tab-with-extra{white-space:nowrap;border-radius:var(--radius-sm) var(--radius-sm) 0 0;background:var(--code-bg);border:1px solid #0000;border-bottom:none;flex:none;margin-bottom:-1px;padding:.4rem .85rem;transition:background .15s,border-color .15s}.section-tab{color:var(--text);opacity:.7;font-size:14px;font-weight:500;text-decoration:none;transition:opacity .15s}@media (hover:hover){.section-tabs .tab-with-extra:not(:has(.section-tab.active)):hover .section-tab{opacity:.9}}.section-tab.active{opacity:1;color:var(--accent-strong);font-weight:650}.section-tabs .tab-with-extra:has(.section-tab.active){background:var(--bg);border-color:var(--border);border-bottom:1px solid var(--bg);box-shadow:inset 0 2px 0 var(--accent-border)}.inline-text-button{color:var(--accent-strong);cursor:pointer;background:0 0;border:none;margin-left:.5rem;padding:0;font-size:12px;text-decoration:underline}.app-nav-guide{color:var(--accent-strong);background:0 0;border:none;align-items:center;gap:.35rem;padding:.4rem .5rem;font-size:14px;font-weight:600;display:inline-flex}@media (hover:hover){.app-nav-guide:hover{background:var(--accent-bg)}}.account-menu{position:relative}button.account-menu-button{letter-spacing:.02em;background:var(--accent-bg);width:36px;height:36px;min-height:36px;color:var(--accent-strong);border:1px solid var(--accent-border);border-radius:50%;justify-content:center;align-items:center;padding:0;font-size:13px;font-weight:700;display:inline-flex}@media (hover:hover){button.account-menu-button:hover{background:var(--accent-bg);border-color:var(--accent)}}button.account-menu-button[aria-expanded=true]{border-color:var(--accent)}.account-menu-panel{right:0;top:calc(100% + var(--space-2));min-width:220px;padding:var(--space-2);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);z-index:20;flex-direction:column;display:flex;position:absolute}.account-menu-inline{flex-direction:column;display:flex}.account-menu-who{padding:var(--space-2) var(--space-3) var(--space-3);margin-bottom:var(--space-1);border-bottom:1px solid var(--border);flex-direction:column;display:flex}.account-menu-name{color:var(--text-h);text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.account-menu-points{font-size:var(--text-xs);color:var(--text-muted)}.account-menu-item,button.account-menu-item{width:100%;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);color:var(--text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;font-size:14px;font-weight:500;text-decoration:none;display:flex}@media (hover:hover){.account-menu-item:hover,button.account-menu-item:hover{background:var(--surface-2)}}.meal-calendar-agenda{flex-direction:column;gap:.5rem;display:flex}.meal-calendar-agenda .meal-calendar-day{height:auto;min-height:3.5rem}.meal-calendar-agenda .meal-calendar-day-date{font-size:14px}.meal-calendar-agenda .meal-calendar-day-count{padding:.35rem .7rem;font-size:14px}.meal-calendar-agenda .meal-calendar-occurrence{padding:.45rem .55rem;font-size:14px}.meal-plan-log-entry button{padding:.3rem .65rem;font-size:13px}.meal-plan-log-made{color:var(--accent-strong,var(--text));opacity:.75;white-space:nowrap;font-size:13px}.meal-plan-log-post{flex-basis:100%}.meal-calendar-occurrence-post{flex-basis:100%;order:97}.landing{color:var(--text);overflow-x:clip}.landing-inner{max-width:68rem;margin:0 auto;padding:0 1.25rem}.landing-top{z-index:20;justify-content:space-between;align-items:center;gap:var(--space-4);background:color-mix(in srgb, var(--bg) 88%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border);max-width:68rem;margin:0 auto;padding:.7rem 1.25rem;display:flex;position:sticky;top:0}.landing-brand{font-family:var(--heading,inherit);color:var(--text-h);align-items:center;gap:.5rem;font-size:1.15rem;display:inline-flex}.landing-top-actions{align-items:center;gap:.5rem;display:inline-flex}.landing-hero{padding-bottom:15rem;position:relative;overflow:hidden}.landing-hero-copy{z-index:1;max-width:68rem;margin:0 auto;padding:4rem 1.25rem 0;position:relative}.landing-glow{pointer-events:none;position:absolute;inset:0;overflow:hidden}.landing-glow span{filter:blur(70px);opacity:.6;border-radius:50%;display:block;position:absolute}.landing-glow-a{background:radial-gradient(circle, var(--accent-bg), transparent 68%);width:40rem;height:40rem;top:-16rem;right:-8rem}.landing-glow-b{background:radial-gradient(circle, var(--accent-bg), transparent 68%);width:28rem;height:28rem;top:30%;left:-12rem}.landing.animate .landing-glow-a{animation:26s ease-in-out infinite landing-drift-a}.landing.animate .landing-glow-b{animation:32s ease-in-out infinite landing-drift-b}@keyframes landing-drift-a{0%,to{transform:translate(0,0)scale(1)}50%{transform:translate(-3rem,2.5rem)scale(1.12)}}@keyframes landing-drift-b{0%,to{transform:translate(0,0)scale(1.08)}50%{transform:translate(2.5rem,-2rem)scale(1)}}.landing-pill{margin:0 0 var(--space-4);border:1px solid var(--border);background:var(--surface);color:var(--text);opacity:.9;border-radius:999px;align-items:center;gap:.5rem;padding:.3rem .8rem;font-size:.8rem;display:inline-flex}.landing-pill-dot{background:var(--accent);border-radius:50%;width:.45rem;height:.45rem}.landing.animate .landing-pill-dot{animation:2.6s ease-in-out infinite landing-pulse}@keyframes landing-pulse{0%,to{opacity:.9;transform:scale(1)}50%{opacity:.35;transform:scale(1.5)}}.landing-hero h1{color:var(--text-h);letter-spacing:-.015em;margin:0 0 var(--space-4);max-width:18ch;font-size:3.1rem;line-height:1.08}.landing-accent{color:var(--accent-strong)}.landing-word{white-space:pre;padding-bottom:.06em;display:inline-block}.landing.animate .landing-word{opacity:0;animation:.62s cubic-bezier(.22,1,.36,1) forwards landing-rise}@keyframes landing-rise{0%{opacity:0;transform:translateY(.55em)}to{opacity:1;transform:translate(0,0)}}.landing-lede{max-width:54ch;margin:0 0 var(--space-5);opacity:.9;font-size:1.12rem;line-height:1.6}.landing.animate .landing-lede{opacity:0;animation:.7s cubic-bezier(.22,1,.36,1) .62s forwards landing-rise}.landing-cta{align-items:center;gap:var(--space-3);margin-bottom:var(--space-4);flex-wrap:wrap;display:flex}.landing.animate .landing-cta{opacity:0;animation:.7s cubic-bezier(.22,1,.36,1) .78s forwards landing-rise}.landing-primary{padding:.72rem 1.5rem;font-size:1.02rem;transition:transform .18s,box-shadow .18s}@media (hover:hover){.landing.animate .landing-primary:hover{box-shadow:var(--shadow);transform:translateY(-2px)}}.landing-trust{opacity:.85;align-items:flex-start;gap:.55rem;max-width:56ch;margin:0;font-size:.92rem;line-height:1.55;display:flex}.landing.animate .landing-trust{opacity:0;animation:.7s cubic-bezier(.22,1,.36,1) .9s forwards landing-rise}.landing-tick{color:var(--accent-strong);flex:none;font-weight:700}.landing-hero-art{inset-inline:0;pointer-events:none;-webkit-user-select:none;user-select:none;height:17rem;position:absolute;bottom:0}.landing-hero-art svg{width:100%;height:100%;display:block}.landing-t-alt{opacity:0}.landing.animate .landing-tva-1{animation:80s ease-in-out infinite pantry-va-t1}.landing.animate .landing-tva-2{animation:80s ease-in-out infinite pantry-va-t2}.landing.animate .landing-tva-3{animation:80s ease-in-out infinite pantry-va-t3}.landing.animate .landing-tvb-1{animation:80s ease-in-out infinite pantry-vb-t1}.landing.animate .landing-tvb-2{animation:80s ease-in-out infinite pantry-vb-t2}.landing.animate .landing-tvb-3{animation:80s ease-in-out infinite pantry-vb-t3}.landing.animate .landing-tvc-1{animation:80s ease-in-out infinite pantry-vc-t1}.landing.animate .landing-tvc-2{animation:80s ease-in-out infinite pantry-vc-t2}.landing.animate .landing-tvc-3{animation:80s ease-in-out infinite pantry-vc-t3}.landing.animate .landing-tvd-1{animation:80s ease-in-out infinite pantry-vd-t1}.landing.animate .landing-tvd-2{animation:80s ease-in-out infinite pantry-vd-t2}.landing.animate .landing-tvd-3{animation:80s ease-in-out infinite pantry-vd-t3}.landing.animate .landing-tve-1{animation:80s ease-in-out infinite pantry-ve-t1}.landing.animate .landing-tve-2{animation:80s ease-in-out infinite pantry-ve-t2}.landing.animate .landing-tve-3{animation:80s ease-in-out infinite pantry-ve-t3}@keyframes pantry-va-t1{0%,1.2%{offset-distance:0%;opacity:0}1.8%,7.6%{offset-distance:0%;opacity:1}10.4%{offset-distance:100%;opacity:1}11%,16%{offset-distance:100%;opacity:0}17%,to{offset-distance:0%;opacity:0}}@keyframes pantry-va-t2{0%,2%{offset-distance:0%;opacity:0}2.6%,8.8%{offset-distance:0%;opacity:1}11.6%{offset-distance:100%;opacity:1}12.2%,16%{offset-distance:100%;opacity:0}17%,to{offset-distance:0%;opacity:0}}@keyframes pantry-va-t3{0%,2.8%{offset-distance:0%;opacity:0}3.4%,10%{offset-distance:0%;opacity:1}12.8%{offset-distance:100%;opacity:1}13.4%,16%{offset-distance:100%;opacity:0}17%,to{offset-distance:0%;opacity:0}}@keyframes pantry-vb-t1{0%,21.2%{offset-distance:0%;opacity:0}21.8%,27.6%{offset-distance:0%;opacity:1}30.4%{offset-distance:100%;opacity:1}31%,36%{offset-distance:100%;opacity:0}37%,to{offset-distance:0%;opacity:0}}@keyframes pantry-vb-t2{0%,22%{offset-distance:0%;opacity:0}22.6%,28.8%{offset-distance:0%;opacity:1}31.6%{offset-distance:100%;opacity:1}32.2%,36%{offset-distance:100%;opacity:0}37%,to{offset-distance:0%;opacity:0}}@keyframes pantry-vb-t3{0%,22.8%{offset-distance:0%;opacity:0}23.4%,30%{offset-distance:0%;opacity:1}32.8%{offset-distance:100%;opacity:1}33.4%,36%{offset-distance:100%;opacity:0}37%,to{offset-distance:0%;opacity:0}}@keyframes pantry-vc-t1{0%,41.2%{offset-distance:0%;opacity:0}41.8%,47.6%{offset-distance:0%;opacity:1}50.4%{offset-distance:100%;opacity:1}51%,56%{offset-distance:100%;opacity:0}57%,to{offset-distance:0%;opacity:0}}@keyframes pantry-vc-t2{0%,42%{offset-distance:0%;opacity:0}42.6%,48.8%{offset-distance:0%;opacity:1}51.6%{offset-distance:100%;opacity:1}52.2%,56%{offset-distance:100%;opacity:0}57%,to{offset-distance:0%;opacity:0}}@keyframes pantry-vc-t3{0%,42.8%{offset-distance:0%;opacity:0}43.4%,50%{offset-distance:0%;opacity:1}52.8%{offset-distance:100%;opacity:1}53.4%,56%{offset-distance:100%;opacity:0}57%,to{offset-distance:0%;opacity:0}}@keyframes pantry-vd-t1{0%,61.2%{offset-distance:0%;opacity:0}61.8%,67.6%{offset-distance:0%;opacity:1}70.4%{offset-distance:100%;opacity:1}71%,76%{offset-distance:100%;opacity:0}77%,to{offset-distance:0%;opacity:0}}@keyframes pantry-vd-t2{0%,62%{offset-distance:0%;opacity:0}62.6%,68.8%{offset-distance:0%;opacity:1}71.6%{offset-distance:100%;opacity:1}72.2%,76%{offset-distance:100%;opacity:0}77%,to{offset-distance:0%;opacity:0}}@keyframes pantry-vd-t3{0%,62.8%{offset-distance:0%;opacity:0}63.4%,70%{offset-distance:0%;opacity:1}72.8%{offset-distance:100%;opacity:1}73.4%,76%{offset-distance:100%;opacity:0}77%,to{offset-distance:0%;opacity:0}}@keyframes pantry-ve-t1{0%,81.2%{offset-distance:0%;opacity:0}81.8%,87.6%{offset-distance:0%;opacity:1}90.4%{offset-distance:100%;opacity:1}91%,96%{offset-distance:100%;opacity:0}97%,to{offset-distance:0%;opacity:0}}@keyframes pantry-ve-t2{0%,82%{offset-distance:0%;opacity:0}82.6%,88.8%{offset-distance:0%;opacity:1}91.6%{offset-distance:100%;opacity:1}92.2%,96%{offset-distance:100%;opacity:0}97%,to{offset-distance:0%;opacity:0}}@keyframes pantry-ve-t3{0%,82.8%{offset-distance:0%;opacity:0}83.4%,90%{offset-distance:0%;opacity:1}92.8%{offset-distance:100%;opacity:1}93.4%,96%{offset-distance:100%;opacity:0}97%,to{offset-distance:0%;opacity:0}}.landing.animate .landing-puff{opacity:0;transform-box:fill-box;transform-origin:50%;animation:16s ease-out infinite pantry-steam}@keyframes pantry-steam{0%,58%{opacity:0;transform:translateY(6px)scale(.6)}64%{opacity:.5;transform:translateY(-4px)scale(1)}74%{opacity:.28;transform:translateY(-16px)scale(1.15)}82%,to{opacity:0;transform:translateY(-26px)scale(1.3)}}.landing-plate{opacity:0}.landing.animate .landing-plate{animation:16s ease-in-out infinite pantry-plate}@keyframes pantry-plate{0%,72%{opacity:0;transform:translate(0)}78%{opacity:1;transform:translate(30px)}90%{opacity:1;transform:translate(120px)}97%,to{opacity:0;transform:translate(170px)}}.landing-bag{opacity:0}.landing.animate .landing-bag{animation:16s ease-in-out infinite pantry-bag}@keyframes pantry-bag{0%,2%{opacity:1;transform:translate(-160px)}12%,30%{opacity:1;transform:translate(300px)}36%{opacity:0;transform:translate(300px)}to{opacity:0;transform:translate(-160px)}}.landing.animate .landing-cal-day{animation:80s linear infinite pantry-cal}@keyframes pantry-cal{0%,19.9%{transform:translate(0)}20%,39.9%{transform:translate(16px)}40%,59.9%{transform:translate(32px)}60%,79.9%{transform:translate(48px)}80%,99.9%{transform:translate(64px)}to{transform:translate(0)}}.landing-band{border-top:1px solid var(--border);padding:4.5rem 0}.landing-band.alt{background:var(--surface)}.landing-eyebrow{margin:0 0 var(--space-2);letter-spacing:.16em;text-transform:uppercase;color:var(--accent-strong);font-size:.75rem;font-weight:600}.landing-h2{margin:0 0 var(--space-3);letter-spacing:-.01em;max-width:24ch;color:var(--text-h);font-size:2rem;line-height:1.2}.landing-section-lede{opacity:.85;max-width:60ch;margin:0;line-height:1.6}.landing.animate .landing-reveal{opacity:0;transition:opacity .6s,transform .6s cubic-bezier(.22,1,.36,1);transform:translateY(1.1rem)}.landing.animate .landing-reveal.is-in{opacity:1;transform:translate(0,0)}.landing-loop-card{margin-top:var(--space-6);padding:var(--space-5);border:1px solid var(--border);background:var(--surface);border-radius:12px}.landing-band.alt .landing-loop-card{background:var(--bg)}.landing-loop{margin-bottom:var(--space-4);flex-wrap:wrap;align-items:center;gap:.4rem .3rem;display:flex}.landing-loop-item{align-items:center;gap:.3rem;display:inline-flex}.landing-loop-chip{border:1px solid var(--border);background:var(--bg);white-space:nowrap;border-radius:999px;align-items:center;gap:.4rem;padding:.3rem .7rem;font-size:.8rem;transition:color .5s,border-color .5s,background .5s;display:inline-flex}.landing-band.alt .landing-loop-chip{background:var(--surface)}.landing-loop-chip.done{border-color:var(--accent-border);color:var(--accent-strong)}.landing-loop-chip.now{border-color:var(--accent);background:var(--accent-bg);color:var(--accent-strong)}.landing-loop-dot{background:var(--border);border-radius:50%;width:.4rem;height:.4rem;transition:background .5s}.landing-loop-chip.done .landing-loop-dot,.landing-loop-chip.now .landing-loop-dot{background:var(--accent)}.landing.animate .landing-loop-chip.now .landing-loop-dot{animation:1.6s ease-in-out infinite landing-pulse}.landing-loop-link{background:var(--border);width:.9rem;height:1px;transition:background .5s}.landing-loop-link.done{background:var(--accent-border)}.landing-loop-note{opacity:.8;max-width:60ch;margin:0;font-size:.9rem;line-height:1.55}.landing-demo{margin-top:var(--space-5);padding:var(--space-5);border:1px solid var(--border);background:var(--bg);box-shadow:var(--shadow);border-radius:14px}.landing-demo-hint{margin:0 0 var(--space-4);opacity:.8;max-width:56ch;font-size:.9rem;line-height:1.55}.landing-chips{margin-bottom:var(--space-4);flex-wrap:wrap;gap:.5rem;display:flex}.landing-chip{color:var(--text);border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:999px;padding:.4rem .9rem;font-size:.92rem;transition:transform .15s,background .15s,border-color .15s,color .15s}.landing.animate .landing-demo .landing-chip{opacity:0;transition:opacity .42s,transform .42s cubic-bezier(.22,1,.36,1),background .15s,border-color .15s,color .15s;transform:scale(.85)}.landing.animate .landing-demo.is-in .landing-chip{opacity:1;transform:scale(1)}.landing-chip.on{background:var(--accent-bg);border-color:var(--accent-border);color:var(--accent-strong)}.landing.animate .landing-chip:active{transform:scale(.94)}@media (hover:hover){.landing-chip:hover{border-color:var(--accent-border)}}.landing-demo-count{margin:0 0 var(--space-3);color:var(--text-h);font-size:1.02rem}.landing-demo-list{flex-direction:column;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.landing-demo-list li{justify-content:space-between;align-items:baseline;gap:var(--space-4);background:var(--surface);border:1px solid #0000;border-radius:8px;padding:.5rem .7rem;font-size:.94rem;transition:background .2s,border-color .2s;display:flex}.landing-band.alt .landing-demo-list li{background:var(--surface)}.landing-demo-list li.ready{background:var(--accent-bg);border-color:var(--accent-border)}.landing-demo-missing{opacity:.7;white-space:nowrap;font-size:.82rem}.landing-demo-list li.ready .landing-demo-missing{color:var(--accent-strong);opacity:.95}.landing-features{gap:var(--space-4);margin-top:var(--space-6);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.landing-features>*{height:100%}.landing-feature{height:100%;padding:var(--space-4);border:1px solid var(--border);background:var(--surface);border-radius:12px;transition:transform .2s,box-shadow .2s,border-color .2s}.landing-band.alt .landing-feature{background:var(--bg)}@media (hover:hover){.landing.animate .landing-feature:hover{border-color:var(--accent-border);box-shadow:var(--shadow);transform:translateY(-3px)}}.landing-feature-icon{border:1px solid var(--border);background:var(--accent-bg);width:2.4rem;height:2.4rem;color:var(--accent-strong);border-radius:10px;justify-content:center;align-items:center;display:inline-flex}.landing-feature-icon svg{width:1.25rem;height:1.25rem}.landing-feature h3{margin:var(--space-3) 0 var(--space-2);color:var(--text-h);font-size:1rem;line-height:1.3}.landing-feature p{opacity:.82;margin:0;font-size:.92rem;line-height:1.55}.landing-price{margin-top:var(--space-6);padding:var(--space-5);border:1px solid var(--accent-border);background:var(--accent-bg);border-radius:14px}.landing-bignum{margin:0 0 var(--space-4);flex-wrap:wrap;align-items:baseline;gap:.6rem;display:flex}.landing-bignum strong{font-family:var(--heading,inherit);color:var(--accent-strong);font-variant-numeric:tabular-nums;font-size:2.4rem;line-height:1}.landing-bignum span{opacity:.85;font-size:.98rem}.landing-price-list{margin:0 0 var(--space-5);gap:.55rem var(--space-4);grid-template-columns:repeat(2,minmax(0,1fr));padding:0;list-style:none;display:grid}.landing-price-list li{align-items:flex-start;gap:.5rem;font-size:.93rem;line-height:1.5;display:flex}.landing-foot{justify-content:space-between;align-items:center;gap:var(--space-4);max-width:68rem;padding:var(--space-5) 1.25rem;border-top:1px solid var(--border);flex-wrap:wrap;margin:0 auto;display:flex}.landing-foot .landing-brand{opacity:.75;font-size:.95rem}.landing-foot a{opacity:.7;font-size:.85rem}@media (width<=720px){.landing-inner{padding:0 .9rem}.landing-top{padding:.6rem .9rem}.landing-top-cta{display:none}.landing-hero{padding-bottom:11rem}.landing-hero-copy{padding:2.25rem .9rem 0}.landing-hero h1{font-size:1.9rem}.landing-lede{font-size:1rem}.landing-hero-art{height:12rem}.landing-band{padding:3rem 0}.landing-h2{font-size:1.5rem}.landing-cta button,.landing-price .landing-primary{width:100%}.landing-features,.landing-price-list{grid-template-columns:1fr}.landing-demo{padding:var(--space-4)}.landing-demo-list li{flex-direction:column;align-items:flex-start;gap:.15rem}.landing-demo-missing{white-space:normal}}@media (width>=721px) and (width<=1000px){.landing-features{grid-template-columns:repeat(2,minmax(0,1fr))}}.landing.is-settled .landing-word,.landing.is-settled .landing-lede,.landing.is-settled .landing-cta,.landing.is-settled .landing-trust{opacity:1}@media (prefers-reduced-motion:reduce){.landing *,.landing :before,.landing :after{transition:none!important;animation:none!important}.landing .landing-word,.landing .landing-lede,.landing .landing-cta,.landing .landing-trust,.landing .landing-chip,.landing .landing-reveal{opacity:1!important;transform:none!important}.landing .landing-puff{opacity:.35!important}.landing .landing-plate,.landing .landing-bag,.landing .landing-t-alt{opacity:0!important}}.app-main{box-sizing:border-box;width:100%;max-width:1200px;margin:0 auto;padding:2rem 1.5rem}@media (width<=720px){.app-main{padding:1rem .75rem}.app-nav{gap:.4rem .5rem;padding:.6rem .75rem}.app-nav-brand{margin-right:.25rem}.app-nav-link{padding:.4rem .5rem}.recipe-browse-page h1,.recipe-detail-page h1{font-size:30px}.modal-overlay{padding:.75rem}.pantry-add-row{flex-wrap:wrap}}@media (width<=480px){.app-nav-brand{margin-right:0;font-size:.95rem}.app-nav-link{padding:.4rem}}@media (pointer:coarse){button,.app-nav-link,.section-tabs .tab-with-extra,.cuisine-sidebar-link{min-height:44px}.inline-text-button{padding:.35rem .25rem;font-size:14px}input[type=text],input[type=search],input[type=number],input[type=date],textarea,select{min-height:44px;font-size:16px}input[type=checkbox]{width:22px;height:22px}.meal-calendar-trip-badge,.meal-calendar-occurrence-remove,.meal-calendar-occurrence-made-action,.meal-templates-delete,.recipe-card-favorite,.recipe-card-favorite-overlay,.modal-close{justify-content:center;align-items:center;min-width:44px;min-height:44px;display:inline-flex}.meal-calendar-nutrition-badge{width:28px;height:28px;min-height:0;font-size:14px;line-height:26px;position:relative}.meal-calendar-nutrition-badge:after{content:"";width:38px;height:44px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.meal-calendar-occurrence-step{width:20px;min-height:0;font-size:16px;position:relative}.meal-calendar-occurrence-step:after{content:"";width:32px;height:32px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.pantry-tile{min-height:44px}.pantry-tile:not(.pantry-tile-editing) .qty-row>button.secondary{width:40px;height:40px;min-height:40px}.pantry-tile-editing .qty-row button{min-width:0;padding:.2rem .4rem}.grocery-qty-input{min-height:44px}.grocery-unit-cycle-btn{min-width:0;min-height:0;position:relative}.grocery-unit-cycle-btn:after{content:"";width:44px;height:44px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}}.help-tip-button{border-radius:50%;flex:none;width:1.6rem;height:1.6rem;padding:0;font-size:.9rem;line-height:1}.help-tip-pop{z-index:60;text-align:left;width:min(340px,82vw);padding:.75rem 1rem;font-size:13px;font-weight:400;position:absolute;top:calc(100% + 6px)}.help-tip-pop ul{flex-direction:column;gap:.4rem;margin:0;padding-left:1.1rem;display:flex}.mascot-says{margin:var(--space-3) 0;padding:var(--space-2) var(--space-3);background:var(--surface-2);border-radius:var(--radius-md);color:var(--text-muted);font-size:var(--text-sm)}.toast-container{left:50%;bottom:var(--space-5);z-index:200;align-items:center;gap:var(--space-2);pointer-events:none;flex-direction:column-reverse;width:min(26rem,100vw - 2rem);display:flex;position:fixed;transform:translate(-50%)}.toast{pointer-events:auto;align-items:center;gap:var(--space-2);box-sizing:border-box;border-radius:var(--radius-md);width:100%;font-size:var(--text-sm);cursor:pointer;box-shadow:var(--shadow);background:var(--surface);border:1px solid var(--border);color:var(--text);padding:.65rem .9rem;display:flex}.toast-error{background:var(--danger-bg);border-color:color-mix(in srgb, var(--danger) 35%, transparent);color:var(--danger)}.toast-success{background:var(--success-bg);color:var(--success);border-color:#3f6b3f59}@media (prefers-reduced-motion:no-preference){.toast{animation:.2s ease-out both toast-in}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.toast-leaving{animation:.2s ease-in both toast-out}@keyframes toast-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(8px)}}}.draft-banner{border:1px solid var(--accent-border);background:var(--accent-bg);color:var(--text);border-radius:8px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.6rem;margin:0 0 1rem;padding:.6rem .85rem;font-size:14px;display:flex}.draft-banner.queued{justify-content:flex-start}.loading-state{color:var(--text);align-items:center;gap:.75rem;display:flex}.loading-state-message{opacity:.8}.loading-spinner{border:2px solid var(--accent-border);border-top-color:var(--accent-strong);border-radius:50%;width:14px;height:14px;animation:.8s linear infinite loading-spin}@keyframes loading-spin{to{transform:rotate(360deg)}}.loading-state-mascot{transform-origin:50% 95%;animation:1.6s ease-in-out infinite loading-flip;display:inline-flex}@keyframes loading-flip{0%,to{transform:rotate(-6deg)}50%{transform:rotate(6deg)}}.loading-state-page{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:1rem;min-height:45vh;padding:2rem}.loading-state-page .loading-state-message{font-size:15px}.loading-state-inline{padding:.75rem 0;font-size:14px}.loading-state-strip{border:1px solid var(--accent-border);background:var(--accent-bg);border-radius:8px;margin-bottom:.75rem;padding:.5rem .85rem;font-size:14px}@media (prefers-reduced-motion:reduce){.loading-spinner,.loading-state-mascot{animation:none}}.tour-spotlight{outline:3px solid var(--accent);outline-offset:4px;box-shadow:0 0 0 8px var(--accent-bg), 0 0 22px 6px #0000002e;pointer-events:none;border-radius:4px;animation:1.8s ease-in-out infinite tour-spotlight-pulse}.tour-spotlight.tour-spotlight-interactive{pointer-events:auto}@keyframes tour-spotlight-pulse{0%,to{outline-color:var(--accent);box-shadow:0 0 0 8px var(--accent-bg), 0 0 22px 6px #0000002e}50%{outline-color:var(--accent-strong);box-shadow:0 0 0 12px var(--accent-bg), 0 0 26px 8px #00000038}}@media (prefers-reduced-motion:reduce){.tour-spotlight{animation:none}}.home-page{flex-direction:column;gap:2rem;display:flex}.home-section h2{margin:0 0 .75rem}.home-section-header{justify-content:space-between;align-items:center;gap:.75rem;margin:0 0 .75rem;display:flex}.home-section-header h2{margin:0}.home-section-view-more{color:var(--accent-strong);white-space:nowrap;flex:none;font-size:13px;font-weight:600;text-decoration:none}.home-section-view-more:hover,.home-section-view-more:focus-visible{text-decoration:underline}.today-strip{flex-direction:column;gap:1rem;display:flex}.today-strip-rings{flex-wrap:wrap;gap:1.5rem;display:flex}.home-nutrition-section{box-sizing:border-box;width:100vw;margin-left:-50vw;margin-right:-50vw;padding-left:max(1.5rem,50vw - 600px + 1.5rem);padding-right:max(1.5rem,50vw - 600px + 1.5rem);position:relative;left:50%;right:50%}@media (width<=720px){.home-nutrition-section{padding-left:.75rem;padding-right:.75rem}}.home-nutrition-section .today-strip-rings{justify-content:space-evenly}.nutrition-forecast-wrap{margin-top:1.25rem}.nutrition-forecast{grid-template-columns:repeat(7,minmax(0,1fr));gap:.5rem;margin:0;padding:0;list-style:none;display:grid}@media (width<=720px){.nutrition-forecast{grid-template-columns:repeat(7,6.5rem);overflow-x:auto}}.nutrition-forecast-day{background:var(--surface);border:1px solid var(--border);border-radius:10px;flex-direction:column;align-items:center;gap:.35rem;padding:.6rem .5rem;display:flex}.nutrition-forecast-day.is-empty{opacity:.6}.nutrition-forecast-weekday{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);font-size:.75rem}.nutrition-forecast-cal{font-size:.8rem;font-weight:600}.nutrition-forecast-day.is-empty .nutrition-forecast-cal{color:var(--text-muted);font-weight:400}.nutrition-rose{width:100%;max-width:88px;height:auto}.nutrition-rose-track{fill:var(--surface-2)}.nutrition-rose-goal{fill:none;stroke:var(--text-muted);stroke-width:.75px;stroke-dasharray:2 2}.nutrition-rose-calories{fill:#c0703a;background:#c0703a}.nutrition-rose-protein_g{fill:#4f8a63;background:#4f8a63}.nutrition-rose-carbs_g{fill:#d1a23a;background:#d1a23a}.nutrition-rose-fat_g{fill:#5f7fa8;background:#5f7fa8}.nutrition-forecast-legend{color:var(--text-muted);flex-wrap:wrap;justify-content:center;gap:.35rem 1rem;margin:.6rem 0 0;padding:0;font-size:.75rem;list-style:none;display:flex}.nutrition-forecast-legend li{align-items:center;gap:.3rem;display:flex}.nutrition-forecast-swatch{border-radius:2px;width:.65rem;height:.65rem}.today-strip-line{margin:0}.today-strip-muted{color:var(--text-muted)}.today-strip-subhead{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin:0 0 .35rem;font-size:.8rem}.today-strip-meals{flex-direction:column;gap:.35rem;margin:0;padding:0;list-style:none;display:flex}.nutrition-ring-no-goal{color:inherit;opacity:.55;text-decoration:none;transition:opacity .15s;display:inline-block;position:relative}.nutrition-ring-no-goal:hover{opacity:.85}.nutrition-ring-no-goal-hint{background:var(--accent);color:var(--on-accent);border-radius:var(--radius-sm,4px);white-space:nowrap;padding:.1rem .5rem;font-size:.7rem;font-weight:600;position:absolute;bottom:1.6rem;left:50%;transform:translate(-50%)}.grocery-nudge{border-radius:var(--radius-md);background:var(--accent-bg);color:var(--text);align-items:center;gap:.4rem;width:fit-content;margin-top:.75rem;padding:.6rem 1rem;font-weight:600;text-decoration:none;display:inline-flex}.grocery-nudge:hover{background:var(--accent-bg-strong,var(--accent-bg))}.home-feed-entries{scrollbar-width:thin;gap:.75rem;padding:.25rem .25rem .75rem;display:flex;overflow-x:auto}.home-feed-entries .feed-entry{box-sizing:border-box;flex:none;width:240px}.home-feed-entries .feed-entry-recipe-art{height:90px!important}.home-feed-entries .feed-entry-note,.home-feed-entries .feed-entry-actions,.home-feed-entries .feed-entry-person-cadence{display:none}.home-tile-scroll-row{scrollbar-width:thin;gap:.75rem;margin:0;padding:.25rem .25rem .75rem;list-style:none;display:flex;overflow-x:auto}.home-tile-scroll-row>li{flex:none}.home-tile-scroll-row .recipe-card{width:240px}.home-tile-scroll-prompt{flex:none;width:15rem}.home-tile-scroll-prompt .empty-state{text-align:left;padding:var(--space-3) var(--space-3) var(--space-3) 0;align-items:flex-start;gap:var(--space-2)}.home-tile-scroll-prompt .empty-state h2{font-size:1rem}.home-tile-scroll-prompt .empty-state p{font-size:var(--text-sm)}.home-tile-scroll-loading{align-items:center;display:flex}.ingredient-tile{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);flex-direction:column;gap:.25rem;width:160px;padding:.75rem .9rem;display:flex}.ingredient-tile-image{object-fit:cover;border-radius:var(--radius-sm);border:1px solid var(--border);width:100%;height:90px}.ingredient-tile-name{text-transform:capitalize;font-weight:600}.ingredient-tile-subtitle{font-size:var(--text-sm);opacity:.65}.ingredient-tile-actionable{background:0 0;border:none;padding:0}.ingredient-tile-button{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);text-align:left;cursor:pointer;width:100%;font:inherit;color:inherit;flex-direction:column;gap:.25rem;padding:.75rem .9rem;display:flex;position:relative}.ingredient-tile-button:hover,.ingredient-tile-button:focus-visible{border-color:var(--accent)}.ingredient-tile-add{border-radius:var(--radius-sm);font-size:var(--text-xs);opacity:.85;padding:.1rem .4rem;font-weight:700;position:absolute;top:.5rem;right:.6rem}.ingredient-tile-add-grocery{background:var(--accent-bg);color:var(--accent-strong)}.ingredient-tile-add-pantry{background:var(--status-good-bg);color:var(--status-good-fg)}.ingredient-tile-button:hover .ingredient-tile-add,.ingredient-tile-button:focus-visible .ingredient-tile-add{opacity:1}.neighbor-tile{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);text-align:center;flex-direction:column;align-items:center;gap:.5rem;width:160px;padding:.9rem .75rem;display:flex}.neighbor-tile-link{color:inherit;flex-direction:column;align-items:center;gap:.5rem;width:100%;text-decoration:none;display:flex}.neighbor-tile-name{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-weight:600;overflow:hidden}.neighbor-tile-follow{width:100%}.settings-page section{border-top:1px solid var(--border);margin-top:1.25rem;padding-top:1.25rem;scroll-margin-top:76px}.settings-page section:first-of-type{border-top:none;margin-top:0;padding-top:0}.settings-toc{border-bottom:1px solid var(--border);flex-wrap:wrap;gap:.4rem .6rem;margin:.75rem 0 1.5rem;padding-bottom:1rem;display:flex}.settings-toc a{border:1px solid var(--border);color:var(--text);white-space:nowrap;border-radius:999px;padding:.3rem .7rem;font-size:13px;font-weight:500;text-decoration:none}@media (hover:hover){.settings-toc a:hover{background:var(--code-bg)}}.home-greeting{font-family:var(--heading);letter-spacing:-.01em;color:var(--text-h);margin:0 0 var(--space-5);font-size:clamp(28px,3.4vw,40px);font-weight:600}.home-section-blurb{margin:calc(-1 * var(--space-2)) 0 var(--space-4);color:var(--text-muted);font-size:var(--text-sm)}.home-tonight-grid,.home-section .recipe-tiles{gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(170px,210px))}@media (width<=720px){.home-section .home-tonight-grid,.home-tonight-grid{scroll-snap-type:x mandatory;padding-bottom:var(--space-2);grid-template-columns:none;grid-auto-columns:78%;grid-auto-flow:column;overflow-x:auto}.home-tonight-grid>*{scroll-snap-align:start}}.deduction-notices{left:var(--space-4);bottom:var(--space-5);z-index:90;gap:var(--space-2);flex-direction:column;width:min(22rem,100vw - 2rem);display:flex;position:fixed}.deduction-notice{align-items:center;gap:var(--space-2);border-radius:var(--radius-md);font-size:var(--text-sm);box-shadow:var(--shadow);background:var(--surface);border:1px solid var(--border);color:var(--text);flex-wrap:wrap;padding:.65rem .9rem;display:flex}.deduction-notice p{flex:100%;margin:0}.pending-badge{background:var(--accent-strong);min-width:1.25rem;color:var(--on-accent);text-align:center;border-radius:999px;margin-left:.35rem;padding:0 .4rem;font-size:.75rem;font-weight:600;line-height:1.25rem;display:inline-block}.check-off-empty{opacity:.7}.check-off-group h2{font-size:var(--text-lg,1.1rem);margin:1.25rem 0 .5rem}.check-off-note{opacity:.7;font-size:var(--text-sm);margin:0 0 .5rem}.check-off-list{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.check-off-row{align-items:flex-start;gap:var(--space-2);flex-direction:column;display:flex}.check-off-meal{flex-direction:column;display:flex}.check-off-date{opacity:.7;font-size:var(--text-sm)}.check-off-actions{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.check-off-actions button{min-height:2.5rem}.shopping-page{max-width:40rem;padding:0 var(--space-3,.75rem) 1rem;margin:0 auto}.shopping-top{top:var(--shopping-nav-offset,3.6rem);z-index:5;background:var(--bg);padding:var(--space-2) 0;border-bottom:1px solid var(--border);position:sticky}.shopping-title-row{align-items:center;gap:var(--space-2);display:flex}.shopping-title-row h1{flex:1;margin:0;font-size:1.4rem}.shopping-back{white-space:nowrap;font-size:.9rem}.shopping-progress,.shopping-age{margin:.15rem 0 0}.shopping-age{font-size:var(--text-sm,.85rem)}.shopping-controls{align-items:center;gap:var(--space-2);margin-top:var(--space-1);flex-wrap:wrap;display:flex}.shopping-hide{align-items:center;gap:.4rem;min-height:2.5rem;display:inline-flex}.shopping-pill{align-items:center;gap:var(--space-2);background:var(--warning-bg);color:var(--warning);border:1px solid var(--warning);font-size:var(--text-sm,.85rem);border-radius:999px;padding:.2rem .7rem;display:inline-flex}.shopping-group h2{color:var(--text-muted);margin:1rem 0 .25rem;font-size:.95rem}.shopping-list{margin:0;padding:0;list-style:none}.shopping-row{border-bottom:1px solid var(--border)}.shopping-row-main{align-items:center;gap:var(--space-2);min-height:3rem;display:flex}.shopping-row-label{cursor:pointer;flex:1;align-items:center;gap:.75rem;min-width:0;min-height:3rem;display:flex}.shopping-row-label input[type=checkbox]{flex:none;width:1.5rem;height:1.5rem}.shopping-row-text{flex-direction:column;min-width:0;display:flex}.shopping-row-name{overflow-wrap:anywhere}.shopping-row-note{font-size:var(--text-sm,.85rem);color:var(--text-muted)}.shopping-row.is-ticked .shopping-row-name{text-decoration:line-through}.shopping-row.is-ticked .shopping-row-main{opacity:.55}.shopping-chip{background:var(--surface-2);border:1px solid var(--border);min-width:4.5rem;min-height:2.75rem;color:var(--text);border-radius:999px;flex:none;padding:.25rem .75rem;font-size:.9rem}.shopping-chip.needs-amount{color:var(--text-muted);border-style:dashed}.shopping-editor{padding:var(--space-2) 0 var(--space-3,.75rem) 2.25rem}.shopping-editor-fields{gap:var(--space-2);display:flex}.shopping-editor-fields input{width:6rem;min-height:2.75rem;font-size:1rem}.shopping-editor-fields select{min-height:2.75rem;font-size:1rem}.shopping-editor-actions{gap:var(--space-2);margin-top:var(--space-2);flex-wrap:wrap;display:flex}.shopping-editor-actions button{min-height:2.75rem}.shopping-row-error{margin:0 0 var(--space-1);color:var(--danger);font-size:var(--text-sm,.85rem)}.shopping-footer{gap:var(--space-2);padding:var(--space-2) 0 calc(var(--space-2) + env(safe-area-inset-bottom,0px));background:var(--bg);border-top:1px solid var(--border);margin-top:1.5rem;display:flex;position:sticky;bottom:0}.shopping-footer button{flex:1;min-height:3rem}.shopping-banner{justify-content:space-between;align-items:center;gap:var(--space-2);margin:var(--space-2) 0;border:1px solid var(--accent-border);background:var(--accent-bg);border-radius:8px;flex-wrap:wrap;padding:.6rem .9rem;display:flex}.shopping-banner-actions{align-items:center;gap:var(--space-3,.75rem);display:inline-flex}.review-top h1{margin:var(--space-3,.75rem) 0 var(--space-2);font-size:1.4rem}.review-warning{margin:0 0 var(--space-2);border:1px solid var(--warning);background:var(--warning-bg);color:var(--warning);border-radius:8px;padding:.6rem .9rem}.review-row{padding:var(--space-2) 0;border-bottom:1px solid var(--border)}.review-row.is-skipped .review-row-name{opacity:.55;text-decoration:line-through}.review-row-head{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.review-row-name{overflow-wrap:anywhere;font-weight:600}.review-skip{cursor:pointer;flex:none;align-items:center;gap:.4rem;min-height:2.75rem;display:inline-flex}.review-skip input[type=checkbox]{width:1.5rem;height:1.5rem}.review-row-fields{gap:var(--space-2);margin-top:var(--space-1);display:flex}.review-row-fields input{width:6rem;min-height:2.75rem;font-size:1rem}.review-row-fields select{min-height:2.75rem;font-size:1rem}.review-row-note{margin:var(--space-1) 0 0;font-size:var(--text-sm,.85rem);color:var(--text-muted)}.review-row-need{margin:var(--space-1) 0 0;font-size:var(--text-sm,.85rem);color:var(--warning)}.review-summary{margin-top:var(--space-3,.75rem)}.review-summary p{margin:0 0 var(--space-1)}.review-receipt{margin-top:var(--space-3,.75rem);padding-top:var(--space-2);border-top:1px solid var(--border)}.review-receipt-actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.review-receipt-actions button{min-height:3rem}@media (width<=720px){.shopping-page{padding-left:var(--space-2);padding-right:var(--space-2)}}@media (hover:hover){button.shopping-chip:hover{background:var(--code-bg);border-color:var(--accent-border);color:var(--text)}}[data-theme=classic]{--text:#3a2e1e;--text-h:#241c10;--bg:#fbf1dc;--surface:#fffdf6;--border:#eedfc0;--code-bg:#f5e9cc;--accent:#b5602e;--accent-strong:#7a3f1c;--accent-bg:#b5602e17;--accent-border:#b5602e59;--shadow:#241c1014 0 4px 10px -2px, #241c100d 0 2px 4px -2px;--text-muted:#7a6a52;--surface-2:#f7ecd4;--on-accent:#fff;--shadow-lg:#241c1024 0 12px 32px -4px;--danger:#8c342a;--danger-bg:#fdf0ee;--success:#3f6b3f;--success-bg:#eef6ee;--warning:#8a6314;--warning-bg:#fdf6e3;--sans:"Inter", system-ui, "Segoe UI", Roboto, sans-serif;--heading:"Fraunces", Georgia, serif;--script:var(--heading);--identity-s:55%;--identity-l:38%;--art-s:46%;--art-l:76%}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--text:#e6d8c3;--text-h:#fbf1dc;--text-muted:#a8977f;--bg:#17110c;--surface:#221a13;--surface-2:#2b2118;--border:#3a2d21;--code-bg:#2b2118;--accent:#e0915e;--accent-strong:#f3b98f;--on-accent:#1c1107;--accent-bg:#e0915e1f;--accent-border:#e0915e66;--shadow:#00000059 0 4px 12px -2px, #00000040 0 2px 4px -2px;--shadow-lg:#00000080 0 12px 32px -4px;--danger:#f08a7e;--danger-bg:#f08a7e1f;--success:#8fc79a;--success-bg:#8fc79a1f;--warning:#e6c06a;--warning-bg:#e6c06a1f;--status-good-bg:var(--success-bg);--status-good-fg:var(--success);--status-warn-bg:var(--warning-bg);--status-warn-fg:var(--warning);--sans:"Inter", system-ui, "Segoe UI", Roboto, sans-serif;--heading:"Fraunces", Georgia, serif;--script:var(--heading);--identity-s:50%;--identity-l:62%;--art-s:32%;--art-l:28%}
