:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--color-canvas:#f7f3ed;--color-surface:#fffdf9;--color-surface-raised:#fff;--color-text:#28241f;--color-text-muted:#6d655c;--color-border:#ddd4c8;--color-plum:#76506f;--color-plum-strong:#5d3a57;--color-sage:#70866b;--color-sage-soft:#dfe8dc;--color-focus:#9b5e8d;--color-danger:#9b3d48;--color-warning:#8a5a16;--color-warning-soft:#fff1cf;--shadow-card:0 1.25rem 3rem #4a3a301f;--radius-small:.75rem;--radius-large:1.5rem;--space-1:.5rem;--space-2:.75rem;--space-3:1rem;--space-4:1.5rem;--space-5:2rem;--space-6:3rem;font-synthesis:none;text-rendering:optimizelegibility;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}:root:not([data-theme=light]){--color-canvas:#171a17;--color-surface:#20241f;--color-surface-raised:#282d27;--color-text:#f3efe8;--color-text-muted:#bdb6ab;--color-border:#3b4339;--color-plum:#c497b8;--color-plum-strong:#ddb3d2;--color-sage:#a8bda1;--color-sage-soft:#354233;--color-focus:#e0a6d2;--color-danger:#f0a6ae;--color-warning:#f3c878;--color-warning-soft:#49391f;--shadow-card:0 1.25rem 3rem #00000047}}:root[data-theme=dark]{--color-canvas:#171a17;--color-surface:#20241f;--color-surface-raised:#282d27;--color-text:#f3efe8;--color-text-muted:#bdb6ab;--color-border:#3b4339;--color-plum:#c497b8;--color-plum-strong:#ddb3d2;--color-sage:#a8bda1;--color-sage-soft:#354233;--color-focus:#e0a6d2;--color-danger:#f0a6ae;--color-warning:#f3c878;--color-warning-soft:#49391f;--shadow-card:0 1.25rem 3rem #00000047}*{box-sizing:border-box}.page-content.shopping-page{width:min(100% - 1rem,70rem);max-width:70rem;padding-bottom:calc(var(--mobile-navigation-height) + var(--space-5))}.shopping-create,.shopping-detail,.shopping-list-sections>div{padding:var(--space-3);background:var(--color-surface);border:.0625rem solid var(--color-border);border-radius:var(--radius-large);box-shadow:var(--shadow-card)}.shopping-create__heading,.shopping-detail__header,.shopping-create__footer,.shopping-range-controls,.shopping-list-card{align-items:center;gap:var(--space-2);display:flex}.shopping-create__heading,.shopping-detail__header,.shopping-create__footer{justify-content:space-between}.shopping-create__heading p,.shopping-detail__header p{color:var(--color-text-muted);margin:.25rem 0 0}.shopping-range-controls strong{text-align:center;min-width:11rem}.shopping-week{margin-top:var(--space-3)}.shopping-week__toggle{min-height:2.75rem;margin-bottom:var(--space-1);padding-inline:var(--space-2);color:var(--color-sage-strong);cursor:pointer;background:0 0;border:0;border-radius:999px;font-weight:800}.shopping-date-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:.35rem;display:grid}.shopping-date{min-width:0;min-height:5rem;color:var(--color-text);background:var(--color-surface-raised);border:.0625rem solid var(--color-border);border-radius:var(--radius-small);cursor:pointer;place-items:center;gap:.1rem;padding:.35rem .2rem;display:grid}.shopping-date[aria-pressed=true]{background:var(--color-sage-soft);border-color:var(--color-sage);box-shadow:inset 0 0 0 .0625rem var(--color-sage)}.shopping-date span,.shopping-date small,.shopping-item small{color:var(--color-text-muted);font-size:.75rem}.shopping-date strong{font-size:1.1rem}.shopping-create__footer{margin-top:var(--space-3);padding-top:var(--space-2);border-top:.0625rem solid var(--color-border)}.shopping-list-sections{margin-top:var(--space-3);gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.shopping-list-card{width:100%;min-height:4.75rem;margin-top:var(--space-1);padding:var(--space-2);color:var(--color-text);background:var(--color-surface-raised);border:.0625rem solid var(--color-border);border-radius:var(--radius-small);text-align:left;cursor:pointer;justify-content:space-between}.shopping-list-card span:first-child{gap:.2rem;display:grid}.shopping-list-card small{color:var(--color-text-muted)}.shopping-list-card__count{color:var(--color-sage-strong);font-weight:800}.shopping-detail__header{padding-bottom:var(--space-3);border-bottom:.0625rem solid var(--color-border);align-items:end}.shopping-manual-form{padding:var(--space-3) 0;border-bottom:.0625rem solid var(--color-border);align-items:end;gap:var(--space-2);grid-template-columns:minmax(10rem,2fr) minmax(8rem,1fr) auto;display:grid}.shopping-manual-form>div{gap:.35rem;display:grid}.shopping-manual-form label{color:var(--color-text-muted);font-size:.78rem;font-weight:800}.shopping-manual-form label span{font-weight:600}.shopping-manual-form input{width:100%;min-height:2.75rem;color:var(--color-text);background:var(--color-surface-raised);border:.0625rem solid var(--color-border);border-radius:var(--radius-small);padding:.6rem .75rem}.shopping-manual-form .primary-button{justify-content:center;align-items:center;gap:.4rem;min-height:2.75rem;display:inline-flex}.shopping-manual-form .primary-button svg{width:1rem;height:1rem}.shopping-detail__header h2{margin-block:var(--space-1) 0}.shopping-detail__controls{justify-content:end;gap:var(--space-1);flex-wrap:wrap;display:flex}.shopping-precision-toggle{min-height:2.75rem;padding-inline:var(--space-2);color:var(--color-text-muted);background:var(--color-canvas);border:.0625rem solid var(--color-border);cursor:pointer;border-radius:999px;font-weight:750}.shopping-precision-toggle[aria-pressed=true]{color:var(--color-plum-strong);background:var(--color-sage-soft);border-color:var(--color-sage)}.shopping-item-groups{gap:var(--space-4);display:grid}.shopping-item-group>header{padding:var(--space-3) var(--space-1) var(--space-1);justify-content:space-between;align-items:center;display:flex}.shopping-item-group>header h3{letter-spacing:.06em;text-transform:uppercase;margin:0;font-size:.82rem}.shopping-item-group>header>span{min-width:1.7rem;min-height:1.7rem;color:var(--color-text-muted);background:var(--color-canvas);border-radius:999px;place-items:center;font-size:.75rem;font-weight:800;display:grid}.shopping-items{background:color-mix(in srgb, var(--color-surface) 94%, var(--color-canvas));border:.0625rem solid var(--color-border);border-radius:var(--radius-medium);margin:0;padding:0;list-style:none;overflow:hidden}.shopping-item{min-height:5rem;padding:.65rem var(--space-1);border-bottom:.0625rem solid var(--color-border);grid-template-columns:2.75rem minmax(0,1fr) 2.75rem;align-items:center;column-gap:.45rem;display:grid}.shopping-item:last-child{border-bottom:0}.shopping-item--read-only{grid-template-columns:minmax(0,1fr)}.shopping-item__main{align-content:center;gap:.18rem;min-width:0;display:grid}.shopping-item__title{justify-content:space-between;align-items:baseline;gap:var(--space-1);min-width:0;display:flex}.shopping-item__title strong{text-overflow:ellipsis;overflow:hidden}.shopping-item__state{color:var(--color-text-muted);background:var(--color-canvas);border-radius:999px;flex:none;padding:.15rem .45rem;font-size:.67rem;font-weight:750}.shopping-item__quantity{font-variant-numeric:tabular-nums;flex-wrap:wrap;align-items:baseline;gap:.4rem;display:flex}.shopping-item__quantity>small{background:var(--color-sage-soft);border-radius:999px;padding:.05rem .35rem;font-size:.62rem}.shopping-item--purchased .shopping-item__main strong,.shopping-item--not_buying .shopping-item__main strong{color:var(--color-text-muted);text-decoration:line-through}.shopping-check{color:#0000;cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;width:2.75rem;height:2.75rem;padding:0;display:grid}.shopping-check>span{background:var(--color-surface);border:.125rem solid var(--color-sage);border-radius:50%;place-items:center;width:1.55rem;height:1.55rem;display:grid}.shopping-check svg{stroke-width:3px;width:.95rem;height:.95rem}.shopping-check.is-checked>span{background:var(--color-sage);color:var(--color-surface)}.shopping-check:disabled,.shopping-item__more[data-disabled]{opacity:.5;cursor:progress}.shopping-item__more{width:2.75rem;height:2.75rem;color:var(--color-text-muted);cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;padding:0;display:grid}.shopping-item__actions{justify-content:end;display:flex}.shopping-item--manual:not(.shopping-item--read-only){grid-template-columns:2.75rem minmax(0,1fr) 5.5rem}.shopping-item__remove{width:2.75rem;height:2.75rem;color:var(--color-text-muted);cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;padding:0;display:grid}.shopping-item__remove:hover,.shopping-item__remove:focus-visible{color:var(--color-error);background:var(--color-canvas)}.shopping-item__remove:disabled{opacity:.5;cursor:progress}.shopping-item__remove svg{width:1.1rem;height:1.1rem}.shopping-item__more:hover,.shopping-item__more[data-focus-visible]{color:var(--color-plum-strong);background:var(--color-sage-soft)}.shopping-state-popover{z-index:70;background:var(--color-surface);border:.0625rem solid var(--color-border);border-radius:var(--radius-medium);min-width:12rem;box-shadow:var(--shadow-large);padding:.3rem}.shopping-state-menu{outline:none;gap:.15rem;display:grid}.shopping-state-menu__item{border-radius:var(--radius-small);cursor:pointer;justify-content:space-between;align-items:center;gap:var(--space-2);outline:none;min-height:2.75rem;padding:.55rem .7rem;display:flex}.shopping-state-menu__item[data-focused]{color:var(--color-plum-strong);background:var(--color-sage-soft)}.shopping-state-menu__item svg{width:1rem;height:1rem}.shopping-item__details{color:var(--color-text-muted);grid-column:2/-1;margin-top:.35rem;font-size:.82rem}.shopping-item--read-only .shopping-item__details{grid-column:1}.shopping-item__details summary{width:fit-content;min-height:2rem;color:var(--color-sage-strong);cursor:pointer;padding-block:.35rem;font-weight:750}.shopping-item__details p{padding:var(--space-1) var(--space-2);background:var(--color-sage-soft);border-radius:var(--radius-small);margin-bottom:0}.shopping-item__details ul{padding-left:var(--space-4);margin-bottom:0}@media (width<=720px){.page-content.shopping-page{width:min(100% - .75rem,70rem);padding-top:var(--space-2)}.shopping-page>.page-heading{padding:var(--space-3)}.shopping-page>.page-heading p:last-child,.shopping-page>.page-heading .status-row{display:none}.shopping-create__heading,.shopping-detail__header{flex-direction:column;align-items:stretch}.shopping-detail__controls{justify-content:stretch}.shopping-detail__controls>*{flex:1}.shopping-manual-form{grid-template-columns:1fr 1fr}.shopping-manual-form .primary-button{grid-column:1/-1}.shopping-list-sections{grid-template-columns:1fr}.shopping-date-grid{grid-template-columns:repeat(7,minmax(0,1fr))}.shopping-date{min-height:4.25rem}.shopping-date small{display:none}.shopping-create__footer{z-index:8;bottom:var(--mobile-navigation-height);margin-inline:calc(-1 * var(--space-3));padding:var(--space-2) var(--space-3);background:var(--color-surface);border-bottom-right-radius:var(--radius-large);border-bottom-left-radius:var(--radius-large);position:sticky;box-shadow:0 -.6rem 1.5rem #28241f0f}.shopping-item{padding-inline:.25rem}.shopping-item__title{flex-direction:column;align-items:start;gap:.2rem}.shopping-item__state{order:-1}}@media (width>=52rem){.page-content.shopping-page{width:min(100% - 3rem,70rem);padding-bottom:var(--space-6)}}html{background:var(--color-canvas);min-width:20rem}body{min-width:20rem;min-height:100vh;color:var(--color-text);background:radial-gradient(circle at 15% 10%, #76506f21, transparent 32rem), radial-gradient(circle at 85% 30%, #70866b24, transparent 28rem), var(--color-canvas);margin:0}button,a{font:inherit}:focus-visible{outline:.2rem solid var(--color-focus);outline-offset:.2rem}.skip-link{top:var(--space-2);left:var(--space-2);z-index:10;padding:var(--space-2) var(--space-3);color:var(--color-surface);background:var(--color-plum-strong);border-radius:var(--radius-small);position:fixed;transform:translateY(-200%)}.skip-link:focus{transform:translateY(0)}.app-shell{gap:var(--space-5);grid-template-rows:auto 1fr auto;width:min(100% - 2rem,58rem);min-height:100vh;margin-inline:auto;padding-block:clamp(2rem,8vw,5rem) 2rem;display:grid}.app-shell:has(>.signed-in-app){width:100%;max-width:none;padding:0;display:block}.app-shell:has(>.signed-in-app)>.hero{display:none}.app-shell:has(>.signed-in-app)>footer{display:none}.hero{max-width:42rem}.brand-mark{width:3.5rem;height:3.5rem;margin-bottom:var(--space-4);position:relative}.brand-mark__plum{background:var(--color-plum);border-radius:55% 48% 52%;position:absolute;inset:.7rem .6rem .2rem .3rem;transform:rotate(-8deg)}.brand-mark__leaf{background:var(--color-sage);transform-origin:0 100%;border-radius:100% 0;width:2rem;height:1.15rem;position:absolute;top:.1rem;right:0;transform:rotate(-18deg)}.eyebrow,.status-row{color:var(--color-sage);letter-spacing:.11em;text-transform:uppercase;font-size:.78rem;font-weight:750}h1,h2,p{margin-top:0}h1{max-width:14ch;margin-bottom:var(--space-3);color:var(--color-plum-strong);letter-spacing:-.055em;font-family:Georgia,Times New Roman,serif;font-size:clamp(3rem,11vw,6.5rem);font-weight:600;line-height:.92}.hero__summary{max-width:38rem;color:var(--color-text-muted);margin-bottom:0;font-size:clamp(1.05rem,3vw,1.35rem);line-height:1.6}.foundation-card{background:color-mix(in srgb, var(--color-surface) 94%, transparent);border:.0625rem solid var(--color-border);border-radius:var(--radius-large);box-shadow:var(--shadow-card);align-self:start;padding:clamp(1.5rem,5vw,3rem)}.status-row{align-items:center;gap:var(--space-2);margin-bottom:var(--space-4);display:flex}.status-dot{background:var(--color-sage);width:.65rem;height:.65rem;box-shadow:0 0 0 .3rem var(--color-sage-soft);border-radius:50%}h2{margin-bottom:var(--space-3);letter-spacing:-.025em;font-family:Georgia,Times New Roman,serif;font-size:clamp(1.8rem,5vw,2.8rem);font-weight:600;line-height:1.1}.foundation-card>p{max-width:42rem;color:var(--color-text-muted);line-height:1.65}.foundation-list{margin:var(--space-5) 0 0;gap:var(--space-2);padding:0;list-style:none;display:grid}.foundation-list li{padding:var(--space-3);background:var(--color-sage-soft);border-radius:var(--radius-small);font-weight:650}footer{color:var(--color-text-muted);font-size:.9rem}footer p{margin-bottom:0}@media (width>=44rem){.app-shell{width:min(100% - 4rem,58rem)}.foundation-list{grid-template-columns:repeat(3,1fr)}}@media (prefers-reduced-motion:no-preference){.skip-link{transition:transform .12s ease-out}}.auth-card{max-width:42rem}.auth-form{gap:var(--space-4);display:grid}.auth-form>p{color:var(--color-text-muted);margin-bottom:0;line-height:1.6}.auth-form label{gap:var(--space-1);font-weight:700;display:grid}.auth-form input{width:100%;min-height:3rem;color:var(--color-text);background:var(--color-surface-raised);border:.0625rem solid var(--color-border);border-radius:var(--radius-small);font:inherit;padding:.75rem .9rem}.primary-button,.secondary-button{border-radius:var(--radius-small);cursor:pointer;border:.0625rem solid #0000;min-height:3rem;padding:.75rem 1.1rem;font-weight:750}.primary-button{color:#fff;background:var(--color-plum-strong)}.secondary-button{color:var(--color-text);background:var(--color-sage-soft);border-color:var(--color-border)}.primary-button:disabled,.secondary-button:disabled{cursor:wait;opacity:.7}.notice{padding:var(--space-3);border-radius:var(--radius-small);line-height:1.5}.notice p:last-child{margin-bottom:0}.notice--error{color:var(--color-text);background:color-mix(in srgb, #b53a4a 14%, var(--color-surface));border:.0625rem solid color-mix(in srgb, #b53a4a 45%, var(--color-border))}.notice--success{color:var(--color-text);background:var(--color-sage-soft);border:.0625rem solid var(--color-sage)}.duplicate-warning{gap:var(--space-3);padding:var(--space-4);color:var(--color-text);background:var(--color-warning-soft);border:.0625rem solid var(--color-warning);border-radius:var(--radius-large);display:grid}.duplicate-warning h2,.duplicate-warning p{margin-block:0}.duplicate-match-list,.duplicate-match-list ul{margin:0;padding:0;list-style:none}.duplicate-match-list{gap:var(--space-2);display:grid}.duplicate-match-list>li{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3);background:var(--color-surface);border:.0625rem solid var(--color-border);border-radius:var(--radius-small);display:flex}.duplicate-match-list a.secondary-button{text-align:center;justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.duplicate-match-list ul{margin-top:var(--space-1);color:var(--color-text-muted);font-size:.9rem}.duplicate-warning__actions{justify-content:flex-end;align-items:center;gap:var(--space-2);display:flex}@media (width<=40rem){.duplicate-match-list>li,.duplicate-warning__actions{flex-direction:column;align-items:stretch}}.recipe-create,.recipe-success{margin-block:var(--space-5);padding-top:var(--space-5);border-top:.0625rem solid var(--color-border);gap:var(--space-4);display:grid}.recipe-create h3,.recipe-success h3{margin:0 0 var(--space-2);font-family:Georgia,Times New Roman,serif;font-size:clamp(1.5rem,5vw,2rem);font-weight:600}.recipe-create p,.recipe-success p{color:var(--color-text-muted);line-height:1.6}.recipe-create .status-row,.recipe-success .status-row{margin-bottom:var(--space-2);color:var(--color-sage);line-height:1.2}.recipe-form{gap:var(--space-3);display:grid}.recipe-form>label,.instruction-row label,.recipe-form legend{font-weight:750}.recipe-form input,.recipe-form textarea{width:100%;min-height:3rem;color:var(--color-text);background:var(--color-surface-raised);border:.0625rem solid var(--color-border);border-radius:var(--radius-small);font:inherit;padding:.75rem .9rem}.recipe-form textarea{resize:vertical;min-height:6rem;line-height:1.5}.recipe-form fieldset{margin:var(--space-2) 0 0;gap:var(--space-3);border:0;padding:0;display:grid}.recipe-form legend{margin-bottom:var(--space-3);padding:0}.instruction-list,.instruction-row{gap:var(--space-2);display:grid}.instruction-list{gap:var(--space-4)}.instruction-row{padding:var(--space-3);background:var(--color-sage-soft);border-radius:var(--radius-small)}.text-button{width:fit-content;min-height:2.75rem;color:var(--color-plum-strong);cursor:pointer;text-underline-offset:.2em;background:0 0;border:0;padding:0;font-weight:750;text-decoration:underline}.recipe-success ol{padding-left:var(--space-5);gap:var(--space-2);line-height:1.55;display:grid}@media (width>=44rem){.recipe-form>.primary-button{justify-self:start}}.recipe-library,.recipe-detail{margin-block:var(--space-5);padding-top:var(--space-5);border-top:.0625rem solid var(--color-border);gap:var(--space-3);display:grid}.recipe-library h3,.recipe-detail h3,.recipe-detail h4{margin:0;font-family:Georgia,Times New Roman,serif}.recipe-card-list{gap:var(--space-3);margin:0;padding:0;list-style:none;display:grid}.recipe-card{width:100%;min-height:7rem;padding:var(--space-4);color:var(--color-text);background:var(--color-surface-raised);border:.0625rem solid var(--color-border);border-radius:var(--radius-small);cursor:pointer;text-align:left;gap:var(--space-1);display:grid}.recipe-card__title{color:var(--color-plum-strong);font-size:1.2rem;font-weight:750}.recipe-card span:not(.recipe-card__title),.recipe-meta,.recipe-empty{color:var(--color-text-muted)}.recipe-detail ol{padding-left:var(--space-5);gap:var(--space-2);margin-bottom:0;line-height:1.55;display:grid}.signed-in-app{--mobile-app-bar-height:4.25rem;--mobile-navigation-height:calc(4.1625rem + max(.35rem, env(safe-area-inset-bottom)));min-height:100dvh}.app-sidebar{z-index:20;padding:.35rem max(.5rem, env(safe-area-inset-right)) max(.35rem, env(safe-area-inset-bottom)) max(.5rem, env(safe-area-inset-left));background:color-mix(in srgb, var(--color-surface) 92%, transparent);border-top:.0625rem solid var(--color-border);-webkit-backdrop-filter:blur(1rem);backdrop-filter:blur(1rem);position:fixed;bottom:0;left:0;right:0;box-shadow:0 -.75rem 2rem #28241f14}.sidebar-brand,.sidebar-profile{display:none}.app-navigation{grid-template-columns:repeat(5,1fr);gap:.25rem;display:grid}.nav-link,.sidebar-brand,.sidebar-profile,.app-bar__profile{color:var(--color-text-muted);cursor:pointer;background:0 0;border:0}.nav-link{min-width:0;min-height:3.75rem;padding:.35rem var(--space-1);border-radius:var(--radius-small);align-content:center;place-items:center;gap:.2rem;font-size:.72rem;font-weight:750;display:grid}.nav-link[aria-current=page]{color:var(--color-plum-strong);background:var(--color-sage-soft)}.sidebar-profile[aria-current=page],.app-bar__profile[aria-current=page]{color:var(--color-plum-strong);background:var(--color-sage-soft);border-color:color-mix(in srgb, var(--color-sage) 55%, var(--color-border))}.app-icon{flex:none;width:1.35rem;height:1.35rem}.breadcrumb-icon{flex:none;width:1rem;height:1rem}.app-workspace{min-width:0}.app-bar{z-index:10;min-height:4.25rem;padding:.65rem max(1rem, env(safe-area-inset-right)) .65rem max(1rem, env(safe-area-inset-left));background:color-mix(in srgb, var(--color-canvas) 90%, transparent);border-bottom:.0625rem solid color-mix(in srgb, var(--color-border) 75%, transparent);-webkit-backdrop-filter:blur(1rem);backdrop-filter:blur(1rem);justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.app-bar__brand{color:var(--color-plum-strong);align-items:center;gap:var(--space-2);font-family:Georgia,Times New Roman,serif;font-size:1.15rem;display:flex}.app-bar__context{display:none}.app-bar:has(.app-breadcrumbs) .app-bar__brand{display:none}.app-bar:has(.app-breadcrumbs) .app-bar__context{display:block}.app-breadcrumbs{color:var(--color-text-muted);align-items:center;gap:.6rem;display:flex}.app-breadcrumbs button{min-height:2.75rem;color:var(--color-sage);cursor:pointer;background:0 0;border:0;padding:0;font-weight:750}.app-breadcrumbs span[aria-current=page]{color:var(--color-text);font-weight:800}.app-bar__profile{border-radius:50%;place-items:center;min-width:2.75rem;min-height:2.75rem;padding:0;display:grid}.brand-mark--small,.brand-mark--tiny{flex:none;margin:0}.brand-mark--small{width:2.65rem;height:2.65rem}.brand-mark--tiny{width:1.8rem;height:1.8rem}.brand-mark--small .brand-mark__plum,.brand-mark--tiny .brand-mark__plum{inset:20% 17% 6% 9%}.brand-mark--small .brand-mark__leaf,.brand-mark--tiny .brand-mark__leaf{width:57%;height:33%}.user-avatar{color:#fff;background:var(--color-plum-strong);border-radius:50%;place-items:center;width:2.35rem;height:2.35rem;font-size:.88rem;font-weight:800;display:grid}.page-intro,.page-heading,.dashboard-card,.sign-out-card{background:color-mix(in srgb, var(--color-surface) 94%, transparent);border:.0625rem solid var(--color-border);border-radius:var(--radius-large);box-shadow:var(--shadow-card);padding:clamp(1.25rem,5vw,2rem)}.signed-in-app h1{max-width:none;margin-bottom:var(--space-2);color:var(--color-text);letter-spacing:-.035em;font-size:clamp(2rem,8vw,3.25rem);line-height:1.05}.page-intro p,.page-heading p,.dashboard-card p,.sign-out-card p{color:var(--color-text-muted);line-height:1.6}.page-intro .status-row,.page-heading .status-row{color:var(--color-sage)}.dashboard-grid{gap:var(--space-3);display:grid}.dashboard-card{align-content:start;gap:var(--space-2);min-height:13rem;display:grid}.dashboard-card--featured{background:var(--color-sage-soft)}.dashboard-card h2,.sign-out-card h2{margin:0;font-family:Georgia,Times New Roman,serif;font-size:1.7rem}.dashboard-card .primary-button,.dashboard-card .secondary-button,.sign-out-card .secondary-button{width:fit-content;margin-top:auto}.page-content,.dashboard-page{width:min(100% - 2rem,74rem);padding-block:var(--space-4) calc(5.75rem + env(safe-area-inset-bottom));gap:var(--space-4);margin-inline:auto;display:grid}.page-heading{justify-content:space-between;align-items:end;gap:var(--space-3);flex-wrap:wrap;display:flex}.page-heading h2,.page-intro h2{margin-bottom:var(--space-2)}.page-heading p:last-child,.page-intro p:last-child{margin-bottom:0}.sign-out-card{gap:var(--space-4);display:grid}.button-with-icon{justify-content:center;align-items:center;gap:var(--space-2);display:inline-flex}@media (width>=52rem){.signed-in-app{grid-template-columns:16.5rem minmax(0,1fr);display:grid}.app-sidebar{height:100dvh;padding:var(--space-4);background:color-mix(in srgb, var(--color-surface) 96%, transparent);border-top:0;border-right:.0625rem solid var(--color-border);-webkit-backdrop-filter:blur(1rem);backdrop-filter:blur(1rem);flex-direction:column;display:flex;position:sticky;top:0;box-shadow:.75rem 0 2.5rem #28241f0d}.sidebar-brand,.sidebar-profile{width:100%;padding:var(--space-2);border-radius:var(--radius-small);text-align:left;align-items:center;gap:var(--space-3);display:flex}.sidebar-brand{color:var(--color-plum-strong)}.sidebar-brand strong{font-family:Georgia,Times New Roman,serif;font-size:1.2rem;display:block}.sidebar-brand small,.sidebar-profile small{color:var(--color-text-muted);margin-top:.15rem;font-size:.72rem;display:block}.app-navigation{margin-top:var(--space-5);gap:var(--space-1);grid-template-columns:1fr;display:grid}.nav-link{min-height:3.25rem;padding:var(--space-2) var(--space-3);justify-content:flex-start;gap:var(--space-3);font-size:.95rem;display:flex}.sidebar-profile{color:var(--color-text);border:.0625rem solid var(--color-border);margin-top:auto}.sidebar-profile>span:last-child{min-width:0}.sidebar-profile strong,.sidebar-profile small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.app-bar{min-height:4.75rem;padding-inline:clamp(1.5rem,4vw,3rem)}.app-bar__brand,.app-bar__profile{display:none}.app-bar__context{display:block}.app-bar__context span{font-weight:800}.page-content,.dashboard-page{width:min(100% - 3rem,74rem);padding-block:clamp(1.5rem, 4vw, 3rem) var(--space-6)}.dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-card--featured{grid-row:span 2;min-height:28rem}}@media (width>=75rem){.dashboard-grid{grid-template-columns:1.35fr 1fr 1fr}.dashboard-card--featured{grid-row:auto;min-height:15rem}}.theme-card{padding:var(--space-4);background:var(--color-surface-raised);border:.0625rem solid var(--color-border);border-radius:var(--radius-small);gap:var(--space-3);display:grid}.theme-card h2{margin-bottom:var(--space-1);font-family:Georgia,Times New Roman,serif;font-size:1.45rem}.theme-card p{color:var(--color-text-muted);margin-bottom:0;line-height:1.6}.theme-options{gap:var(--space-2);border:0;margin:0;padding:0;display:grid}.theme-options label{min-height:2.75rem;padding:var(--space-2);background:var(--color-sage-soft);border-radius:var(--radius-small);cursor:pointer;align-items:center;gap:var(--space-2);font-weight:700;display:flex}.administrator-form{gap:var(--space-3);display:grid}.administrator-form label{gap:var(--space-1);font-weight:700;display:grid}.recipe-editor,.recipe-page,.recipe-grid,.recent-recipe-row{--recipe-ink:var(--color-text);--recipe-soft:color-mix(in srgb, var(--color-sage-soft) 62%, var(--color-surface))}.recipe-editor{padding-block:var(--space-4) var(--space-6);gap:var(--space-4);display:grid}.editor-card{background:color-mix(in srgb, var(--color-surface-raised) 96%, transparent);border:.0625rem solid var(--color-border);gap:var(--space-4);border-radius:1.25rem;padding:clamp(1.15rem,4vw,2rem);display:grid;box-shadow:0 .5rem 1.5rem #372a220d}.editor-card--hero{background:linear-gradient(135deg, color-mix(in srgb, var(--color-plum) 9%, var(--color-surface-raised)), var(--color-surface-raised) 55%), var(--color-surface-raised)}.field-stack,.editor-detail-grid label,.editor-notes-grid label,.editor-quick-grid label{color:var(--color-text);gap:.45rem;font-size:.9rem;font-weight:760;display:grid}.field-stack>label span,.editor-detail-grid label>span{color:var(--color-text-muted);font-size:.75rem;font-weight:550}.recipe-editor input,.recipe-editor textarea,.recipe-editor select{width:100%;min-height:3.15rem;color:var(--color-text);background:var(--color-surface-raised);border:.0625rem solid var(--color-border);font:inherit;border-radius:.7rem;padding:.78rem .9rem}.recipe-editor textarea{resize:vertical;line-height:1.55}.recipe-editor input:hover,.recipe-editor textarea:hover,.recipe-editor select:hover{border-color:color-mix(in srgb, var(--color-sage) 70%, var(--color-border))}.editor-nutrition{padding:var(--space-3);background:var(--recipe-soft);border:.0625rem solid var(--color-border);border-radius:.9rem}.image-editor{padding:var(--space-3);background:var(--recipe-soft);border:.0625rem solid var(--color-border);gap:var(--space-3);border-radius:.9rem;display:grid}.image-editor h3{margin-bottom:.3rem}.image-editor>div>p,.image-editor__new-note,.image-editor__message{color:var(--color-text-muted);font-size:.86rem}.image-editor__workspace{gap:var(--space-3);display:grid}.image-editor__preview{color:#ffffffd9;background:linear-gradient(145deg,#6e8368,#344733);border-radius:.8rem;place-items:center;min-height:10rem;font-family:Georgia,serif;font-size:4rem;display:grid;overflow:hidden}.image-editor__preview img{object-fit:cover;width:100%;height:100%;max-height:18rem}.image-editor__controls,.image-editor__controls label{gap:var(--space-2);display:grid}.image-editor__controls label{font-size:.86rem;font-weight:750}.image-editor__controls>div{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}@media (width>=42rem){.image-editor__workspace{grid-template-columns:minmax(12rem,.8fr) minmax(16rem,1.2fr);align-items:start}}.editor-nutrition summary{cursor:pointer;font-weight:800}.editor-nutrition>p{margin-top:var(--space-2);color:var(--color-text-muted);font-size:.86rem}.nutrition-editor-list{margin-block:var(--space-3);gap:var(--space-3);display:grid}.nutrition-editor-row{padding:var(--space-3);background:var(--color-surface-raised);border:.0625rem solid var(--color-border);gap:var(--space-2);border-radius:.8rem;display:grid}.nutrition-editor-row label{color:var(--color-text);gap:.35rem;font-size:.82rem;font-weight:750;display:grid}.nutrition-editor-row label>span{color:var(--color-text-muted);font-size:.72rem;font-weight:550}.nutrition-editor-remove{justify-self:end;min-height:2.75rem}@media (width>=52rem){.nutrition-editor-row{grid-template-columns:minmax(8rem,1.2fr) minmax(6rem,.7fr) minmax(5rem,.6fr) minmax(8rem,.9fr) minmax(11rem,1.5fr) auto;align-items:end}}.editor-card--hero .field-stack:first-child input{min-height:4rem;color:var(--color-plum-strong);border:0;border-bottom:.0625rem solid var(--color-border);background:0 0;border-radius:0;padding-inline:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(1.65rem,5vw,2.5rem)}.editor-quick-grid,.editor-detail-grid,.editor-notes-grid{gap:var(--space-3);display:grid}.editor-quick-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.quick-field-label{min-height:2.2rem;color:var(--color-text);flex-direction:column;justify-content:end;font-size:.9rem;font-weight:760;line-height:1.1;display:flex}.quick-field-label small{min-height:.8rem;color:var(--color-text-muted);margin-top:.18rem;font-size:.7rem;font-weight:550}.quick-field-label:not(:has(small)):after{content:"";min-height:.8rem;margin-top:.18rem}.editor-card__heading{justify-content:space-between;align-items:start;gap:var(--space-3);flex-wrap:wrap;display:flex}.editor-card__heading h2,.section-title h2{margin-bottom:.4rem;font-size:clamp(1.55rem,4vw,2.1rem)}.editor-card__heading p:not(.editor-step){max-width:38rem;color:var(--color-text-muted);margin-bottom:0;line-height:1.55}.editor-step{color:var(--color-sage);letter-spacing:.16em;margin-bottom:.35rem;font-size:.72rem;font-weight:800}.compact-button{min-height:2.6rem;padding:.55rem .8rem}.recipe-group{min-width:0;padding:var(--space-3);background:color-mix(in srgb, var(--color-sage-soft) 38%, transparent);gap:var(--space-2);border:0;border-radius:.9rem;margin:0;display:grid}.recipe-group--drop-end{background:color-mix(in srgb, var(--color-sage-soft) 82%, transparent);box-shadow:inset 0 0 0 .125rem var(--color-sage)}.recipe-group--drop-end .add-row-button{width:100%;color:var(--color-text);background:color-mix(in srgb, var(--color-sage) 18%, transparent);border-radius:.65rem}.group-heading{align-items:center;gap:var(--space-2);display:flex}.group-heading input{min-height:2.6rem;font-weight:750}.icon-text-button,.add-row-button,.row-remove,.back-button{color:var(--color-sage);cursor:pointer;background:0 0;border:0;font-weight:750}.icon-text-button{flex:none;min-height:2.75rem}.editable-list{gap:.6rem;display:grid}.editable-row{border-radius:.75rem;grid-template-columns:2.75rem 1.8rem minmax(0,1fr) 2.75rem;align-items:center;gap:.45rem;display:grid;position:relative}.editable-row--dragging{opacity:.32;background:var(--color-sage-soft);transform:scale(.985)}.editable-row--drop-before:before,.editable-row--drop-after:after{z-index:2;background:var(--color-sage);height:.22rem;box-shadow:0 0 0 .22rem color-mix(in srgb, var(--color-sage) 18%, transparent);content:"";border-radius:100vmax;position:absolute;left:.2rem;right:.2rem}.editable-row--drop-before:before{top:-.42rem}.editable-row--drop-after:after{bottom:-.42rem}.editable-row--drop-before,.editable-row--drop-after{background:color-mix(in srgb, var(--color-sage-soft) 36%, transparent)}.drag-handle{min-width:2.75rem;min-height:2.75rem;color:var(--color-text-muted);cursor:grab;background:0 0;border:0;border-radius:.65rem;place-items:center;padding:0;display:grid}.drag-handle:active{cursor:grabbing}.drag-handle:hover{color:var(--color-sage);background:var(--color-sage-soft)}.drag-handle svg{display:block}.drag-preview{z-index:9999;opacity:.97;background:var(--color-surface-raised);border:.125rem solid var(--color-sage);pointer-events:none;border-radius:.85rem;padding:.45rem;position:fixed;top:-100rem;left:0;transform:rotate(1deg)scale(1.015);box-shadow:0 1rem 2.5rem #1e191447}.editable-row>span{width:1.7rem;height:1.7rem;color:var(--color-sage);background:var(--color-surface-raised);border:.0625rem solid var(--color-border);border-radius:50%;place-items:center;font-size:.75rem;font-weight:800;display:grid}.editable-row--textarea{align-items:start}.editable-row--textarea>span{margin-top:.75rem}.row-remove{min-width:2.75rem;min-height:2.75rem;color:var(--color-text-muted);border-radius:50%;place-items:center;font-size:1.25rem;display:grid}.row-remove:hover{color:var(--color-danger);background:color-mix(in srgb, var(--color-danger) 10%, transparent)}.add-row-button{justify-self:start;align-items:center;gap:.35rem;min-height:2.75rem;padding-inline:.35rem;display:inline-flex}.editor-actions{z-index:2;padding:var(--space-3);background:color-mix(in srgb, var(--color-surface) 92%, transparent);border:.0625rem solid var(--color-border);-webkit-backdrop-filter:blur(.8rem);backdrop-filter:blur(.8rem);justify-content:space-between;align-items:center;gap:var(--space-3);border-radius:1rem;display:flex;position:sticky;bottom:0;box-shadow:0 -.5rem 2rem #281e1914}.editor-actions--warning{background:var(--color-warning-soft);border-color:var(--color-warning);overscroll-behavior:contain;max-height:min(70vh,40rem);display:block;overflow-y:auto}.duplicate-warning--floating{background:0 0;border:0;border-radius:0;padding:0}.editor-actions--warning .duplicate-warning p{color:var(--color-text);font-size:inherit;line-height:1.5;display:block}.editor-actions p{color:var(--color-text-muted);margin:0;font-size:.82rem;line-height:1.4;display:none}.editor-actions .primary-button{width:100%}.recipe-search{z-index:3;margin-top:var(--space-4);position:relative}.recipe-search__row{gap:var(--space-2);grid-template-columns:minmax(0,1fr) auto;display:grid}.recipe-search__input{min-height:3rem;padding-inline:var(--space-3);color:var(--color-text-muted);background:var(--color-surface-raised);border:.0625rem solid var(--color-border);align-items:center;gap:var(--space-2);border-radius:.9rem;display:flex;box-shadow:0 .25rem 1rem #3228230d}.recipe-search__input:focus-within{border-color:var(--color-sage);outline:.18rem solid color-mix(in srgb, var(--color-sage) 22%, transparent)}.recipe-search__input>svg{flex:none}.recipe-search__input input{width:100%;min-width:0;color:var(--color-text);font:inherit;background:0 0;border:0;outline:0;padding:0}.recipe-filter-button{justify-content:center;align-items:center;gap:.4rem;min-width:5.5rem;min-height:3rem;display:inline-flex}.recipe-filter-panel{z-index:20;top:calc(var(--mobile-app-bar-height) + var(--space-2));right:0;bottom:var(--mobile-navigation-height);max-height:none;padding:var(--space-4);background:var(--color-surface-raised);border:.0625rem solid var(--color-border);border-radius:1.25rem 1.25rem 0 0;position:fixed;left:0;overflow-y:auto;box-shadow:0 -1rem 3rem #231c1933}.recipe-filter-panel__heading,.recipe-filter-panel__actions{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.recipe-filter-panel__heading h2,.recipe-filter-panel__heading p{margin:0}.recipe-filter-panel__heading h2{font-family:Georgia,serif;font-size:1.35rem}.recipe-filter-panel__heading p{color:var(--color-text-muted);margin-top:.25rem;font-size:.8rem}.recipe-filter-fields{margin-top:var(--space-4);gap:var(--space-3);display:grid}.recipe-filter-field{gap:.4rem;display:grid;position:relative}.recipe-filter-fields label{color:var(--color-text);font-size:.8rem;font-weight:750}.recipe-filter-fields input{width:100%;min-height:2.75rem;color:var(--color-text);background:var(--color-surface);border:.0625rem solid var(--color-border);font:inherit;border-radius:.7rem;padding:.65rem .75rem;font-weight:450}.recipe-filter-field>small{color:var(--color-text-muted);font-size:.7rem;font-weight:450;line-height:1.3}.recipe-filter-suggestions{z-index:4;color:var(--color-text-muted);background:var(--color-surface-raised);border:.0625rem solid var(--color-border);border-radius:.7rem;padding:.35rem;position:absolute;top:calc(100% + .25rem);left:0;right:0;overflow:hidden;box-shadow:0 .75rem 2rem #231c1929}.recipe-filter-suggestions>span{padding:.7rem;font-size:.78rem;display:block}.recipe-filter-suggestions button{width:100%;min-height:2.75rem;color:var(--color-text);text-align:left;cursor:pointer;font:inherit;justify-content:space-between;align-items:center;gap:var(--space-2);background:0 0;border:0;border-radius:.5rem;padding:.55rem .65rem;display:flex}.recipe-filter-suggestions button:hover,.recipe-filter-suggestions button:focus-visible{background:var(--color-sage-soft);outline:none}.recipe-filter-suggestions button>span{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:.82rem;font-weight:720;overflow:hidden}.recipe-filter-suggestions button>small{color:var(--color-text-muted);flex:none;font-size:.7rem}.recipe-filter-options{margin-block:var(--space-4);gap:var(--space-3);display:grid}.recipe-filter-options fieldset{gap:var(--space-2) var(--space-3);border:0;flex-wrap:wrap;margin:0;padding:0;display:flex}.recipe-filter-options legend{width:100%;margin-bottom:var(--space-2);font-size:.8rem;font-weight:800}.recipe-filter-options label{align-items:center;gap:.45rem;min-height:2.75rem;font-size:.85rem;display:inline-flex}.recipe-filter-options input{width:1.15rem;height:1.15rem;accent-color:var(--color-plum)}.recipe-filter-panel__actions{bottom:calc(var(--space-4) * -1);padding-top:var(--space-3);padding-bottom:var(--space-2);background:var(--color-surface-raised);border-top:.0625rem solid var(--color-border);position:sticky}.recipe-filter-chips{margin-top:var(--space-2);flex-wrap:wrap;gap:.45rem;display:flex}.recipe-filter-chips button{min-height:2.25rem;color:var(--color-text);background:color-mix(in srgb, var(--color-sage-soft) 72%, var(--color-surface));border:.0625rem solid color-mix(in srgb, var(--color-sage) 45%, var(--color-border));cursor:pointer;font:inherit;border-radius:999px;padding:.35rem .65rem;font-size:.75rem;font-weight:700}.recipe-filter-chips button svg{vertical-align:middle;margin-left:.4rem}.recipe-filter-chips .recipe-filter-chips__clear{color:var(--color-plum);background:0 0;border-color:#0000}.recipe-grid--updating{opacity:.58}.recipe-tile__match{width:100%;min-width:0;max-width:100%;color:var(--color-plum);background:color-mix(in srgb, var(--color-plum) 14%, var(--color-surface));border-radius:.45rem;padding:.45rem .55rem;font-size:.74rem;font-weight:720;line-height:1.3;overflow:hidden}.recipe-tile__match>span{overflow-wrap:anywhere;-webkit-line-clamp:2;white-space:normal;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.recipe-search-empty .secondary-button{margin-top:var(--space-2)}.library-toolbar{padding-block:var(--space-3);color:var(--color-text-muted);border-bottom:.0625rem solid var(--color-border);justify-content:space-between;font-size:.85rem;display:flex}.library-toolbar p{color:var(--color-text);margin:0;font-weight:750}.recipe-grid{margin:var(--space-4) 0;gap:var(--space-3);padding:0;list-style:none;display:grid}.recipe-tile{width:100%;height:100%;color:var(--color-text);text-align:left;background:var(--color-surface-raised);border:.0625rem solid var(--color-border);cursor:pointer;border-radius:1.1rem;padding:0;display:grid;overflow:hidden;box-shadow:0 .3rem 1rem #3228230d}.recipe-tile__visual{color:#ffffffd9;background:linear-gradient(145deg,#6e8368,#344733);place-items:center;min-height:8rem;display:grid;position:relative;overflow:hidden}.recipe-tile__visual--1{background:linear-gradient(145deg,#835872,#4a2d43)}.recipe-tile__visual--2{background:linear-gradient(145deg,#b77e55,#775038)}.recipe-tile__visual--3{background:linear-gradient(145deg,#637987,#354956)}.recipe-tile__initial{opacity:.72;font-family:Georgia,serif;font-size:4rem}.recipe-tile__visual>img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.recipe-review-badge{z-index:1;color:#fff;background:color-mix(in srgb, var(--color-plum-strong) 90%, #000);letter-spacing:.02em;opacity:1;white-space:nowrap;border:.0625rem solid #ffffff59;border-radius:999px;max-width:calc(100% - .8rem);padding:.18rem .35rem;font-size:.56rem;font-weight:800;line-height:1.15;position:absolute;top:.4rem;right:.4rem;box-shadow:0 .1rem .3rem #0000002e}.recipe-tile__body{min-width:0;padding:var(--space-3);flex-direction:column;gap:.45rem;display:flex}.recipe-tile__eyebrow,.recipe-tile__date{color:var(--color-sage);letter-spacing:.08em;text-transform:uppercase;font-size:.68rem;font-weight:800}.recipe-tile__body>strong{font-family:Georgia,serif;font-size:1.35rem;line-height:1.12}.recipe-tile__description{min-height:2.6em;color:var(--color-text-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.35;display:-webkit-box;overflow:hidden}.recipe-tile__meta{padding-top:var(--space-2);color:var(--color-text-muted);flex-wrap:wrap;gap:.35rem .8rem;margin-top:auto;font-size:.78rem;display:flex}.recipe-tile__date{color:var(--color-text-muted);margin-top:.35rem}.load-more{margin-inline:auto;display:block}.recipe-loading,.library-empty{min-height:18rem;color:var(--color-text-muted);text-align:center;place-content:center;place-items:center;display:grid}.library-empty__icon{width:2.5rem;height:2.5rem;margin-bottom:var(--space-2);color:var(--color-sage)}.recipe-loading span{border:.18rem solid var(--color-sage-soft);border-top-color:var(--color-sage);border-radius:50%;width:2rem;height:2rem}.recipe-detail-shell{width:100%;min-width:0}.recipe-page{background:var(--color-surface)}.recipe-hero{background:radial-gradient(circle at 85% 15%, color-mix(in srgb, var(--color-sage) 19%, transparent), transparent 22rem), linear-gradient(150deg, color-mix(in srgb, var(--color-plum) 8%, var(--color-surface)), var(--color-surface));border-bottom:.0625rem solid var(--color-border);padding:clamp(1rem,4vw,3.5rem) max(1rem,50vw - 32rem)}.recipe-hero__actions{justify-content:space-between;align-items:center;margin-bottom:clamp(2rem,6vw,4rem);display:flex}.recipe-hero__actions--confirming{margin-bottom:1rem}.back-button{min-height:2.75rem;padding:0}.recipe-hero__content{max-width:48rem}.recipe-hero h1{max-width:18ch;margin-bottom:var(--space-3);font-size:clamp(2.8rem,8vw,5.8rem);line-height:.94}.recipe-deck{max-width:42rem;color:var(--color-text-muted);font-size:clamp(1.05rem,2.5vw,1.3rem);line-height:1.6}.pill-row{flex-wrap:wrap;gap:.45rem;display:flex}.pill-row span{color:var(--color-sage);background:var(--color-sage-soft);border-radius:100vmax;padding:.35rem .65rem;font-size:.75rem;font-weight:750}.recipe-facts{margin:var(--space-5) 0 0;padding-top:var(--space-3);border-top:.0625rem solid var(--color-border);gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.recipe-facts div{gap:.25rem;display:grid}.recipe-facts dt{color:var(--color-text-muted);letter-spacing:.1em;text-transform:uppercase;font-size:.7rem;font-weight:800}.recipe-facts dd{margin:0;font-family:Georgia,serif;font-size:1.2rem}.recipe-content-grid{gap:var(--space-6);width:min(100% - 2rem,64rem);margin-inline:auto;padding-block:clamp(2.5rem,7vw,5rem);display:grid}.section-title{margin-bottom:var(--space-5)}.section-title .eyebrow{margin-bottom:.45rem}.ingredient-panel section+section,.method-panel section+section{margin-top:var(--space-5)}.ingredient-panel h3,.method-panel h3{margin:0 0 var(--space-3);font-family:Georgia,serif;font-size:1.15rem}.ingredient-panel ul{gap:0;margin:0;padding:0;list-style:none;display:grid}.ingredient-panel li{border-bottom:.0625rem solid var(--color-border);padding-block:.8rem;line-height:1.45}.muted-copy{color:var(--color-text-muted)}.prep-note,.household-note{margin-top:var(--space-5);padding:var(--space-3);background:var(--color-sage-soft);border-radius:.9rem}.prep-note p,.household-note p:last-child{white-space:pre-wrap;margin:.5rem 0 0;line-height:1.55}.method-list{gap:var(--space-4);margin:0;padding:0;list-style:none;display:grid}.method-list li{align-items:start;gap:var(--space-3);grid-template-columns:2.4rem 1fr;display:grid}.method-list li>span{width:2.4rem;height:2.4rem;color:var(--color-sage);background:var(--color-sage-soft);border-radius:50%;place-items:center;font-size:.75rem;font-weight:800;display:grid}.method-list p{white-space:pre-wrap;margin:0;line-height:1.7}.recipe-links{width:min(100% - 2rem,64rem);margin:0 auto var(--space-6);background:var(--color-surface-raised);border:.0625rem solid var(--color-border);gap:var(--space-4);border-radius:1rem;padding:clamp(1.25rem,4vw,2rem);display:grid}.recipe-links__heading,.recipe-link-picker__heading{justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.recipe-links__heading h2,.recipe-link-picker__heading h3,.recipe-link-group h3{margin:0}.recipe-links__heading .eyebrow{margin-bottom:.35rem}.recipe-link-groups{gap:var(--space-4);display:grid}.recipe-link-group ul,.recipe-link-results{margin:var(--space-2) 0 0;padding:0;list-style:none;display:grid}.recipe-link-group li,.recipe-link-results li{border-bottom:.0625rem solid var(--color-border);justify-content:space-between;align-items:center;gap:.5rem var(--space-2);flex-wrap:wrap;min-height:3.25rem;padding-block:.45rem;display:flex}.recipe-link-title{min-height:2.75rem;color:var(--color-plum);text-align:left;font:inherit;cursor:pointer;background:0 0;border:0;padding:0;font-weight:750}.recipe-link-remove{color:var(--color-text-muted);font-size:.82rem}.recipe-link-confirmation{align-items:center;gap:var(--space-2);color:var(--color-text-muted);flex-wrap:wrap;font-size:.85rem;display:flex}.recipe-link-picker{padding:var(--space-3);background:color-mix(in srgb, var(--color-sage-soft) 60%, var(--color-surface));gap:var(--space-3);border-radius:.85rem;display:grid}.recipe-link-picker fieldset{gap:var(--space-2);border:0;margin:0;padding:0;display:grid}.recipe-link-picker legend,.recipe-link-search>label{margin-bottom:var(--space-2);font-weight:750}.recipe-link-picker fieldset label{align-items:center;gap:.65rem;min-height:2.75rem;display:flex}.recipe-link-picker input[type=radio]{width:1.15rem;height:1.15rem}.recipe-link-search,.recipe-link-search>div{gap:var(--space-2);display:grid}.recipe-link-search input{min-width:0;min-height:2.75rem;color:var(--color-text);background:var(--color-surface);border:.0625rem solid var(--color-border-strong);font:inherit;border-radius:.6rem;padding:.65rem .75rem}.recipe-source{width:min(100% - 2rem,64rem);padding-block:0 var(--space-6);color:var(--color-text-muted);gap:var(--space-2);margin-inline:auto;display:grid}.recipe-source>div:first-child{justify-content:space-between;display:flex}.recipe-source p{margin:0;font-size:.85rem}.completeness-track{background:var(--color-sage-soft);border-radius:100vmax;height:.45rem;overflow:hidden}.completeness-track span,.completeness-track i{background:var(--color-sage);border-radius:inherit;height:100%;display:block}.dashboard-welcome{margin-bottom:var(--space-5);justify-content:space-between;align-items:end;gap:var(--space-4);flex-wrap:wrap;display:flex}.dashboard-welcome h1{max-width:16ch;font-size:clamp(2.6rem,7vw,4.6rem)}.dashboard-welcome>div>p:last-child{max-width:39rem;color:var(--color-text-muted);margin:0;font-size:1.05rem;line-height:1.55}.dashboard-recipe-layout{gap:var(--space-3);display:grid}.dashboard-feature{background:var(--color-surface-raised);border:.0625rem solid var(--color-border);min-height:22rem;box-shadow:var(--shadow-card);border-radius:1.4rem;display:grid;overflow:hidden}.dashboard-feature__copy{flex-direction:column;align-items:start;padding:clamp(1.4rem,4vw,2.5rem);display:flex}.dashboard-feature__copy h2{max-width:15ch}.dashboard-feature__copy>p:not(.eyebrow){max-width:35rem;color:var(--color-text-muted);line-height:1.55}.dashboard-feature__copy>div{gap:var(--space-2);flex-wrap:wrap;margin-top:auto;display:flex}.dashboard-feature__art{min-height:11rem;padding:var(--space-4);color:#f7f3ed;text-align:center;background:radial-gradient(circle at 70% 20%,#ffffff2e,#0000 35%),linear-gradient(145deg,#6d4b65,#334931);place-content:center;display:grid;transform:rotate(-2deg)scale(1.04)}.dashboard-feature__art span{font-family:Georgia,serif;font-size:clamp(2rem,6vw,3.6rem);font-style:italic;line-height:.9}.dashboard-feature__art strong{color:#d9c7a9;font-family:Georgia,serif;font-size:1.4rem}.dashboard-stat-stack{gap:var(--space-3);grid-template-columns:repeat(2,1fr);display:grid}.dashboard-stat-stack article{padding:var(--space-3);background:var(--color-surface-raised);border:.0625rem solid var(--color-border);border-radius:1.1rem}.dashboard-stat-stack article>span{color:var(--color-text-muted);font-size:.75rem;font-weight:750}.dashboard-stat-stack strong{color:var(--color-plum-strong);margin-block:.6rem;font-family:Georgia,serif;font-size:clamp(2rem,6vw,3.1rem);display:block}.dashboard-stat-stack p{color:var(--color-text-muted);margin:.65rem 0 0;font-size:.8rem}.recent-recipes{margin-top:clamp(2.5rem,6vw,4rem)}.section-heading-row{justify-content:space-between;align-items:end;gap:var(--space-3);display:flex}.section-heading-row h2{margin-bottom:var(--space-3);font-size:clamp(1.65rem,4vw,2.3rem)}.recent-recipe-row{gap:var(--space-2);display:grid}.recent-recipe-row>button{color:var(--color-text);text-align:left;background:var(--color-surface-raised);border:.0625rem solid var(--color-border);cursor:pointer;align-items:center;gap:var(--space-3);border-radius:.9rem;grid-template-columns:4rem 1fr;padding:.65rem;display:grid}.recent-recipe-art{color:#fff;background:#657c60;border-radius:.65rem;place-items:center;height:4rem;font-family:Georgia,serif;font-size:1.7rem;display:grid;position:relative;overflow:hidden}.recent-recipe-art>img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.recent-recipe-art--1{background:#76506f}.recent-recipe-art--2{background:#a16f4d}.recent-recipe-row strong,.recent-recipe-row small{display:block}.recent-recipe-row small{color:var(--color-text-muted);margin-top:.3rem}.dashboard-empty{padding:var(--space-4);text-align:center;background:var(--color-surface-raised);border:.0625rem dashed var(--color-border);border-radius:1rem}@media (width>=38rem){.editor-actions p{display:block}.editor-actions .primary-button{width:auto;min-width:10rem}.recipe-grid,.recipe-filter-fields,.recipe-filter-options{grid-template-columns:repeat(2,minmax(0,1fr))}.recipe-facts{grid-template-columns:repeat(5,minmax(0,1fr))}.recent-recipe-row{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width>=50rem){.editor-quick-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.editor-detail-grid,.editor-notes-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.recipe-content-grid{grid-template-columns:minmax(15rem,.78fr) minmax(0,1.5fr);gap:clamp(3rem,8vw,7rem)}.recipe-link-groups{grid-template-columns:repeat(2,minmax(0,1fr))}.recipe-link-search>div{grid-template-columns:minmax(0,1fr) auto}.ingredient-panel{align-self:start;position:sticky;top:2rem}.dashboard-recipe-layout{grid-template-columns:minmax(0,2.2fr) minmax(12rem,.8fr)}.dashboard-feature{grid-template-columns:1.25fr .75fr}.dashboard-stat-stack{grid-template-columns:1fr}}@media (width>=52rem){.recipe-filter-panel{top:calc(100% + var(--space-2));border-radius:1.1rem;width:min(44rem,100%);max-height:min(75vh,42rem);position:absolute;bottom:auto;left:auto;right:0;box-shadow:0 1rem 3rem #231c1929}}@media (width>=70rem){.recipe-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (prefers-reduced-motion:no-preference){.recipe-group{transition:background-color .14s,box-shadow .14s}.editable-row{transition:opacity .13s,transform .13s,background-color .13s}.recipe-tile,.recent-recipe-row>button{transition:transform .15s,box-shadow .15s,border-color .15s}.recipe-tile:hover,.recent-recipe-row>button:hover{border-color:var(--color-sage);transform:translateY(-.15rem);box-shadow:0 .8rem 2rem #3228231a}.recipe-loading span{animation:.8s linear infinite recipe-spin}@keyframes recipe-spin{to{transform:rotate(360deg)}}}.page-heading__actions,.dashboard-welcome__actions{flex-wrap:wrap;gap:.75rem;display:flex}.recipe-import-page{place-items:start center;display:grid}.import-card{border:1px solid var(--color-border);background:var(--color-surface);width:min(100%,48rem);box-shadow:var(--shadow-card);border-radius:1.5rem;padding:clamp(1.5rem,5vw,3rem)}.import-url-row{gap:.75rem;margin-top:.5rem;display:grid}.import-url-row input{min-height:3rem}.import-progress,.import-review-banner{background:var(--color-surface-raised);border-radius:1rem;justify-content:space-between;align-items:center;gap:1rem;margin:1.5rem 0;padding:1rem;display:flex}.import-progress>span{border:2px solid var(--color-border);border-top-color:var(--color-sage);border-radius:50%;flex:none;width:1.25rem;height:1.25rem;animation:.8s linear infinite import-spin}@keyframes import-spin{to{transform:rotate(360deg)}}.import-candidates{gap:.75rem;display:grid}.import-candidates button{text-align:left;border:1px solid var(--color-border);background:var(--color-surface);color:inherit;border-radius:.75rem;gap:.25rem;padding:1rem;display:grid}.import-privacy{color:var(--color-text-muted);margin-top:1.5rem;font-size:.875rem}.recipe-hero__image{object-fit:cover;border-radius:1rem;width:100%;max-height:28rem;margin-bottom:1.5rem}.recipe-nutrition dl{grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:.75rem;display:grid}.recipe-nutrition dt{text-transform:capitalize}@media (width>=42rem){.import-url-row{grid-template-columns:1fr auto}}@media (prefers-reduced-motion:reduce){.import-progress>span{animation:none}}.meal-plan-page{width:min(100% - 1rem,120rem);padding-block:var(--space-4) calc(6rem + env(safe-area-inset-bottom));gap:var(--space-3);margin-inline:auto;display:grid}.meal-plan-heading,.calendar-toolbar,.plan-modal header,.meal-day>header{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.meal-plan-heading{padding:var(--space-3) var(--space-2);flex-wrap:wrap;align-items:center}.meal-plan-heading h1{letter-spacing:-.045em;margin-block:.15rem;font-size:clamp(2rem,5vw,3.5rem)}.meal-plan-heading p:last-child{color:var(--color-text-muted);margin:0}.calendar-toolbar{top:calc(var(--mobile-app-bar-height) + .5rem);z-index:8;padding:var(--space-2);background:color-mix(in srgb, var(--color-surface) 94%, transparent);border:.0625rem solid var(--color-border);border-radius:var(--radius-large);box-shadow:var(--shadow-small);-webkit-backdrop-filter:blur(1rem);backdrop-filter:blur(1rem);gap:var(--space-2);display:grid;position:sticky}.calendar-toolbar h2{letter-spacing:-.02em;margin:0;font-size:clamp(1.05rem,3vw,1.35rem)}.calendar-toolbar__period{justify-content:space-between;align-items:center;gap:var(--space-2);min-width:0;display:flex}.calendar-toolbar__navigation{gap:var(--space-1);flex:none;display:flex}.calendar-arrow,.calendar-today{min-height:2.5rem;color:var(--color-text);background:var(--color-canvas);cursor:pointer;border:0;border-radius:999px;font-weight:800}.calendar-arrow{place-items:center;width:2.5rem;padding:0;display:grid}.calendar-today{padding-inline:.85rem}.calendar-toolbar__switchers{justify-content:space-between;gap:var(--space-2);flex-wrap:wrap;min-width:0;display:flex}.calendar-options-button{width:2.75rem;height:2.75rem;color:var(--color-plum-strong);background:var(--color-canvas);cursor:pointer;border:0;border-radius:50%;flex:none;place-items:center;padding:0;display:none}.calendar-copy-button{white-space:nowrap;min-height:2.9rem}.calendar-view-switcher,.calendar-layout-switcher{background:var(--color-canvas);border-radius:999px;padding:.2rem;display:flex}.calendar-view-switcher button,.calendar-layout-switcher button{min-height:2.5rem;color:var(--color-text-muted);text-transform:capitalize;cursor:pointer;background:0 0;border:0;border-radius:999px;padding:.4rem .65rem}.calendar-layout-switcher button{align-items:center;gap:.35rem;display:inline-flex}.calendar-view-switcher button[aria-pressed=true],.calendar-layout-switcher button[aria-pressed=true]{color:var(--color-plum-strong);background:var(--color-surface);font-weight:800;box-shadow:0 .08rem .3rem #1e141e1f}.meal-calendar-shell{width:100%;padding:.2rem .15rem var(--space-3);scrollbar-color:var(--color-border) transparent;scrollbar-width:thin;overflow:auto}.meal-calendar{align-items:start;gap:var(--space-2);display:grid}.meal-day-slot{display:contents}.meal-calendar--calendar{grid-template-columns:repeat(7,minmax(16rem,1fr));min-width:116rem}.meal-calendar--calendar.meal-calendar--week{grid-auto-rows:34rem}.meal-calendar--calendar.meal-calendar--fortnight{grid-auto-rows:28rem}.meal-calendar--calendar.meal-calendar--month{grid-auto-rows:24rem}.meal-calendar--agenda{gap:var(--space-3);width:min(100%,58rem);margin-inline:auto}.meal-day{background:color-mix(in srgb, var(--color-surface) 96%, var(--color-canvas));border:.0625rem solid var(--color-border);border-radius:var(--radius-large);min-width:0;box-shadow:var(--shadow-small);padding:0;overflow:hidden}.meal-calendar--calendar .meal-day{scroll-snap-align:start;flex-direction:column;height:100%;min-height:0;display:flex}.meal-calendar--calendar .meal-day>header{flex:none}.meal-calendar--calendar .meal-day__entries{overscroll-behavior-y:auto;scrollbar-color:var(--color-border) transparent;scrollbar-width:thin;flex:1;align-content:start;min-height:0;overflow:hidden auto}.meal-calendar-shell--calendar{scroll-snap-type:x proximity}.planner-day-strip{display:none}.meal-calendar--agenda .meal-day{grid-template-columns:minmax(6rem,8rem) minmax(0,1fr);display:grid}.meal-day__month-summary{display:none}.meal-day--today{border-color:var(--color-sage);box-shadow:0 0 0 .12rem color-mix(in srgb, var(--color-sage) 34%, transparent), var(--shadow-small)}.meal-day.is-drop-target{background:var(--color-sage-soft);border-color:var(--color-sage)}.meal-day--outside{opacity:.6}.meal-day>header{min-height:4.5rem;padding:var(--space-2) var(--space-3);background:color-mix(in srgb, var(--color-canvas) 72%, transparent);border-bottom:.0625rem solid var(--color-border)}.meal-day__date{align-items:center;gap:.65rem;display:flex}.meal-day>header strong{align-items:baseline;gap:.35rem;display:flex}.meal-day__weekday{color:var(--color-text-muted);text-transform:uppercase;font-size:.78rem;font-weight:800}.meal-day__number{width:2.25rem;height:2.25rem;color:var(--color-text);border-radius:50%;place-items:center;font-size:1rem;display:grid}.meal-day--today .meal-day__number{color:#fff;background:var(--color-sage-strong)}.meal-day__month{color:var(--color-text-muted);text-transform:uppercase;font-size:.78rem}.meal-day__actions{flex:none;align-items:center;gap:.25rem;display:flex}.meal-day__add,.meal-day__copy,.meal-day__close{width:2.5rem;height:2.5rem;color:var(--color-sage-strong);cursor:pointer;background:0 0;border:0;border-radius:50%;flex:none;place-items:center;padding:0;line-height:1;display:grid}.meal-day__actions svg{width:1.25rem;height:1.25rem;display:block}.meal-day__add:hover,.meal-day__add:focus-visible,.meal-day__add.is-active,.meal-day__copy:hover,.meal-day__copy:focus-visible,.meal-day__close:hover,.meal-day__close:focus-visible{color:var(--color-plum-strong);background:var(--color-sage-soft)}.meal-day__entries{padding:var(--space-2);align-content:start;gap:var(--space-2);display:grid}.meal-day__empty{margin:var(--space-2);color:var(--color-text-muted);text-align:center;font-size:.82rem}.icon-button{min-width:2.5rem;min-height:2.5rem;color:var(--color-text-muted);border-radius:var(--radius-small);cursor:pointer;background:0 0;border:0}.plan-entry{background:var(--color-canvas);border:.0625rem solid var(--color-border);border-radius:var(--radius-medium);min-height:4.25rem;transition:transform .12s,border-color .12s,box-shadow .12s;position:relative;overflow:hidden}.plan-entry:hover,.plan-entry:focus-within{border-color:color-mix(in srgb, var(--color-plum) 35%, var(--color-border));transform:translateY(-.05rem);box-shadow:0 .2rem .7rem #2a1f2a1a}.plan-entry.is-drop-target{border-color:var(--color-sage);box-shadow:0 -.2rem 0 var(--color-sage)}.plan-entry.is-dragging{opacity:.38}.plan-entry--unavailable{border-color:var(--color-warning)}.plan-entry__surface{width:100%;min-height:4.25rem;color:inherit;text-align:left;cursor:pointer;touch-action:pan-y;background:0 0;border:0;grid-template-columns:3.75rem minmax(0,1fr);align-items:stretch;padding:0;display:grid}.plan-entry__surface:active{cursor:pointer}.plan-entry__visual{min-height:100%;color:var(--color-plum-strong);background:linear-gradient(145deg, var(--color-sage-soft), var(--color-canvas));font-family:var(--font-display);place-items:center;font-size:1.3rem;font-weight:800;display:grid;position:relative;overflow:hidden}.plan-entry__visual img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.plan-entry__body{text-align:left;align-content:center;min-width:0;min-height:4.25rem;padding:.6rem 3rem .6rem .7rem;display:grid}.plan-entry__body strong{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.88rem;line-height:1.25;display:-webkit-box;overflow:hidden}.plan-entry__body small{color:var(--color-text-muted);margin-top:.2rem}.plan-entry__drag,.plan-entry__more{width:2.5rem;min-width:0;height:2.5rem;min-height:0;color:var(--color-text-muted);background:color-mix(in srgb, var(--color-canvas) 88%, transparent);box-shadow:none;cursor:pointer;border:0;border-radius:0;place-items:center;padding:0;font-size:1.15rem;font-weight:700;line-height:1;display:grid;position:absolute;right:.3rem}.plan-entry__more{top:.15rem}.plan-entry__drag{cursor:grab;touch-action:none;height:1.75rem;bottom:.15rem;right:.45rem}.plan-entry__drag:active{cursor:grabbing}.plan-entry__drag:hover,.plan-entry__more:hover{color:var(--color-plum-strong);background:var(--color-sage-soft)}.plan-modal{z-index:50;padding:var(--space-2);background:#18141a8c;align-items:end;display:grid;position:fixed;inset:0}.plan-modal__surface{width:min(100%,44rem);max-height:min(90dvh,52rem);padding:var(--space-4);background:var(--color-surface);border:.0625rem solid var(--color-border);border-radius:var(--radius-large) var(--radius-large) var(--radius-medium) var(--radius-medium);box-shadow:var(--shadow-large);margin-inline:auto;overflow:auto}.plan-modal__dialog{outline:none}.plan-modal__surface>p{color:var(--color-text-muted)}.plan-modal__actions{justify-content:flex-end;gap:var(--space-2);display:flex}.entry-editor,.copy-plan-form,.recipe-picker,.recipe-picker__results{gap:var(--space-3);display:grid}.entry-editor label{gap:var(--space-1);font-weight:750;display:grid}.entry-editor input,.entry-editor select{min-height:2.75rem;color:var(--color-text);background:var(--color-canvas);border:.0625rem solid var(--color-border);border-radius:var(--radius-small);padding:.6rem .75rem}.entry-type-picker,.planner-options__group{gap:var(--space-1);border:0;margin:0;padding:0;display:grid}.entry-type-picker legend,.planner-options__group legend,.servings-field>label{margin-bottom:var(--space-1);font-weight:750}.entry-type-picker>div,.planner-options__group>div{background:var(--color-canvas);border-radius:var(--radius-medium);flex-wrap:wrap;gap:.2rem;padding:.2rem;display:flex}.entry-type-picker button,.planner-options__group button{min-height:2.75rem;color:var(--color-text-muted);border-radius:var(--radius-small);cursor:pointer;background:0 0;border:0;flex:auto;padding-inline:.75rem}.entry-type-picker button[aria-pressed=true],.planner-options__group button[aria-pressed=true]{color:var(--color-plum-strong);background:var(--color-surface);box-shadow:var(--shadow-small);font-weight:800}.servings-field{gap:var(--space-1);display:grid}.servings-field [role=group]{background:var(--color-canvas);border:.0625rem solid var(--color-border);border-radius:var(--radius-small);grid-template-columns:3rem minmax(4rem,1fr) 3rem;display:grid;overflow:hidden}.servings-field button{min-height:3rem;color:var(--color-plum-strong);cursor:pointer;background:0 0;border:0;place-items:center;display:grid}.servings-field input{text-align:center;border-block:0;border-radius:0;width:100%;min-height:3rem;padding:.5rem}.inline-calendar{padding:var(--space-3);background:var(--color-canvas);border:.0625rem solid var(--color-border);border-radius:var(--radius-medium);gap:var(--space-2);display:grid}.inline-calendar__label{color:var(--color-text-muted);letter-spacing:.05em;text-transform:uppercase;font-size:.75rem;font-weight:800}.inline-calendar .rdp-root{--rdp-accent-color:var(--color-plum-strong);--rdp-accent-background-color:var(--color-sage-soft);--rdp-day-height:clamp(2rem, 10vw, 2.75rem);--rdp-day-width:clamp(2rem, 10vw, 2.75rem);--rdp-day_button-height:clamp(2rem, 10vw, 2.75rem);--rdp-day_button-width:clamp(2rem, 10vw, 2.75rem);--rdp-outside-opacity:.42;--rdp-range_end-color:white;--rdp-range_start-color:white;--rdp-selected-border:.125rem solid var(--color-plum-strong);--rdp-today-color:var(--color-sage-strong);width:fit-content;max-width:100%;color:var(--color-text);margin-inline:auto}.inline-calendar .rdp-month_caption{font-size:1rem;font-weight:800}.inline-calendar .rdp-button_previous,.inline-calendar .rdp-button_next{color:var(--color-text-muted);border-radius:50%}.inline-calendar .rdp-button_previous:hover,.inline-calendar .rdp-button_previous:focus-visible,.inline-calendar .rdp-button_next:hover,.inline-calendar .rdp-button_next:focus-visible,.inline-calendar .rdp-day_button:hover,.inline-calendar .rdp-day_button:focus-visible{color:var(--color-plum-strong);background:var(--color-sage-soft)}.inline-calendar .rdp-selected:not(.rdp-range_middle) .rdp-day_button{aspect-ratio:1;color:#fff;background:var(--color-plum-strong);border-radius:50%;font-weight:850}.inline-calendar .rdp-range_middle .rdp-day_button{font-weight:750}.inline-calendar .rdp-today .rdp-day_button{box-shadow:inset 0 0 0 .125rem var(--color-sage)}.copy-plan-span{gap:var(--space-1);border:0;margin:0;padding:0;display:grid}.copy-plan-span legend{margin-bottom:var(--space-1);font-weight:750}.copy-plan-span>div{background:var(--color-canvas);border-radius:999px;padding:.2rem;display:flex}.copy-plan-span button{min-height:2.6rem;color:var(--color-text-muted);cursor:pointer;background:0 0;border:0;border-radius:999px;flex:1}.copy-plan-span button[aria-pressed=true]{color:var(--color-plum-strong);background:var(--color-surface);font-weight:800;box-shadow:0 .08rem .3rem #1e141e1f}.copy-plan-summary{min-height:6rem;padding:var(--space-3);background:var(--color-sage-soft);border:.0625rem solid var(--color-border);border-radius:var(--radius-small)}.copy-plan-summary p{color:var(--color-text-muted);margin-bottom:0;line-height:1.5}.copy-plan-shortcut{padding:var(--space-3);background:var(--color-sage-soft);border:.0625rem solid var(--color-border);border-radius:var(--radius-medium);gap:.25rem;display:grid}.copy-plan-shortcut span,.copy-plan-shortcut small{color:var(--color-text-muted)}.copy-plan-advanced>summary{min-height:2.75rem;color:var(--color-sage-strong);cursor:pointer;font-weight:800}.copy-plan-advanced>div,.planner-options,.entry-action-list,.move-entry-form{gap:var(--space-3);display:grid}.entry-action-list button,.planner-options>.secondary-button{justify-content:center;gap:var(--space-2);width:100%;display:flex}.danger-button{min-height:2.75rem;color:var(--color-danger);border:.0625rem solid color-mix(in srgb, var(--color-danger) 45%, var(--color-border));border-radius:var(--radius-small);cursor:pointer;background:0 0;padding:.65rem 1rem;font-weight:800}.recipe-picker__status{padding:var(--space-3);color:var(--color-text-muted);text-align:center;margin:0}.plan-undo{right:1rem;bottom:calc(var(--mobile-navigation-height) + 1rem);z-index:60;color:#fff;background:var(--color-plum-strong);border-radius:var(--radius-medium);min-height:3.5rem;box-shadow:var(--shadow-large);justify-content:space-between;align-items:center;gap:var(--space-2);padding:.65rem .75rem .65rem 1rem;display:flex;position:fixed;left:1rem}.plan-undo button{color:#fff;border-radius:var(--radius-small);cursor:pointer;background:#ffffff24;border:0;min-height:2.5rem;padding-inline:.9rem;font-weight:850}.recipe-picker__results{max-height:16rem;overflow:auto}.recipe-picker__results button{min-height:4rem;color:var(--color-text);background:var(--color-canvas);border:.0625rem solid var(--color-border);border-radius:var(--radius-small);text-align:left;cursor:pointer;grid-template-columns:3.5rem minmax(0,1fr) 1.5rem;align-items:center;gap:.7rem;padding:0;display:grid;overflow:hidden}.recipe-picker__results button.is-selected{border-color:var(--color-sage);background:var(--color-sage-soft)}.recipe-picker__results small{color:var(--color-text-muted)}.recipe-picker__visual{width:3.5rem;height:100%;color:var(--color-plum-strong);background:var(--color-sage-soft);place-items:center;font-weight:800;display:grid;position:relative;overflow:hidden}.recipe-picker__visual img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.recipe-picker__copy{text-align:left;min-width:0;display:grid}.recipe-picker__copy strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.recipe-picker__check{visibility:hidden;color:var(--color-sage-strong);font-weight:900}.recipe-picker__results button.is-selected .recipe-picker__check{visibility:visible}@media (width<=42rem){.meal-plan-page{padding-top:var(--space-2)}.meal-plan-heading{padding-block:var(--space-1)}.meal-plan-heading .status-row,.meal-plan-heading p:last-child{display:none}.meal-plan-heading h1{margin:0;font-size:1.65rem}.meal-plan-heading .secondary-button{width:100%}.calendar-toolbar{gap:0}.calendar-toolbar__period{align-items:center}.calendar-toolbar__period h2{text-align:center;text-overflow:ellipsis;white-space:nowrap;padding:0;font-size:.9rem;overflow:hidden}.calendar-toolbar__switchers{display:none}.calendar-options-button{display:grid}.calendar-today{padding-inline:.65rem;font-size:.82rem}.planner-day-strip{padding:.2rem .15rem var(--space-1);scrollbar-width:none;scroll-snap-type:x proximity;gap:.35rem;display:flex;overflow-x:auto}.planner-day-strip::-webkit-scrollbar{display:none}.planner-day-strip button{min-width:3.25rem;min-height:3.65rem;color:var(--color-text-muted);background:color-mix(in srgb, var(--color-surface) 94%, transparent);border:.0625rem solid var(--color-border);border-radius:var(--radius-medium);scroll-snap-align:start;cursor:pointer;flex:1 0 3.25rem;place-items:center;gap:.1rem;padding:.3rem;line-height:1;display:grid}.planner-day-strip button[aria-current=date]{color:#fff;background:var(--color-plum-strong);border-color:var(--color-plum-strong)}.planner-day-strip span,.planner-day-strip small{font-size:.68rem}.planner-day-strip small{opacity:.8}.meal-calendar--calendar{grid-template-columns:repeat(7,17.5rem);min-width:max-content}.meal-calendar--agenda .meal-day{display:block}.meal-calendar--agenda .meal-day>header{border-right:0}.meal-calendar--agenda .meal-day{scroll-margin-top:calc(var(--mobile-app-bar-height) + 5.5rem)}.meal-calendar--calendar.meal-calendar--month{grid-template-columns:repeat(7,minmax(0,1fr));grid-auto-rows:auto;gap:.3rem;width:100%;min-width:0}.meal-calendar--calendar.meal-calendar--month .meal-day{border-radius:var(--radius-small);height:auto;min-height:4.1rem;display:block}.meal-calendar--calendar.meal-calendar--month .meal-day-slot--expanded{min-height:4.1rem;display:block}.meal-calendar--calendar.meal-calendar--month .meal-day>header,.meal-calendar--calendar.meal-calendar--month .meal-day__entries{display:none}.meal-calendar--calendar.meal-calendar--month .meal-day__month-summary{width:100%;min-height:4.1rem;color:var(--color-text);cursor:pointer;background:0 0;border:0;place-items:center;gap:.1rem;padding:.3rem;display:grid}.meal-calendar--calendar.meal-calendar--month .meal-day.meal-day--expanded{z-index:18;top:var(--mobile-app-bar-height);right:0;bottom:var(--mobile-navigation-height);opacity:1;background:var(--color-surface);width:auto;height:auto;min-height:0;box-shadow:var(--shadow-large);border-width:0;border-radius:0;flex-direction:column;display:flex;position:fixed;left:0;overflow:hidden}.meal-calendar--calendar.meal-calendar--month .meal-day.meal-day--expanded>.meal-day__month-summary{display:none}.meal-calendar--calendar.meal-calendar--month .meal-day.meal-day--expanded>header{min-height:4.5rem;padding-inline:var(--space-3);flex:none;display:flex}.meal-calendar--calendar.meal-calendar--month .meal-day.meal-day--expanded>.meal-day__entries{min-height:0;padding:var(--space-3);overscroll-behavior:contain;flex:1;align-content:start;display:grid;overflow:hidden auto}.meal-day--expanded .meal-day__date{gap:var(--space-2)}.meal-day--expanded .meal-day__weekday{font-size:.9rem}.meal-day--expanded .meal-day__number{font-size:1.15rem}.meal-day--expanded .meal-day__month{font-size:.9rem}.meal-day__month-summary span,.meal-day__month-summary small{color:var(--color-text-muted);font-size:.65rem}.meal-day--today .meal-day__month-summary strong{color:#fff;background:var(--color-sage-strong);border-radius:50%;place-items:center;width:1.75rem;height:1.75rem;display:grid}.plan-modal{padding:0}.plan-modal__surface{width:100%;max-height:92dvh;padding:var(--space-3);padding-bottom:max(var(--space-3), env(safe-area-inset-bottom));border-radius:var(--radius-large) var(--radius-large) 0 0}.plan-modal__actions{bottom:calc(-1 * var(--space-3));padding-block:var(--space-2);background:var(--color-surface);position:sticky}}@media (width>=64rem){.meal-plan-page{width:min(100% - 2rem,120rem);padding-block:clamp(1.5rem, 3vw, 3rem) var(--space-6)}.calendar-toolbar{padding:var(--space-2) var(--space-3);grid-template-columns:minmax(20rem,1fr) auto;align-items:center;top:1rem}.calendar-toolbar__period{justify-content:flex-start}.calendar-toolbar__switchers{flex-wrap:nowrap}.meal-calendar--calendar{grid-template-columns:repeat(7,minmax(14rem,1fr));min-width:102rem}.meal-calendar--agenda .meal-day>header{border-right:.0625rem solid var(--color-border);border-bottom:0;align-items:flex-start;min-height:100%}.meal-calendar--agenda .meal-day__date{flex-direction:column;align-items:flex-start;gap:.25rem}.meal-calendar--agenda .meal-day>header strong{flex-direction:column}.meal-calendar--agenda .meal-day__number{width:2.75rem;height:2.75rem;font-size:1.2rem}.plan-modal{align-items:center}.plan-modal__surface{border-radius:var(--radius-large)}.plan-modal--drawer{justify-content:end;padding:0}.plan-modal--drawer .plan-modal__surface{border-radius:var(--radius-large) 0 0 var(--radius-large);width:min(32rem,100vw);height:100dvh;max-height:none;margin:0}}@media (prefers-reduced-motion:reduce){.plan-entry{transition:none}::view-transition-group(expanded-meal-day){animation-duration:.01ms}}@media (prefers-reduced-motion:no-preference){::view-transition-old(root){animation:none}::view-transition-new(root){animation:none}::view-transition-group(expanded-meal-day){animation-duration:.34s;animation-timing-function:cubic-bezier(.2,.8,.2,1)}}@media print{.app-sidebar,.app-bar,.recipe-hero__actions,.recipe-source .completeness-track,.recipe-source>div:first-child,.recipe-source>p:first-of-type{display:none!important}.app-workspace{margin:0!important}.recipe-hero{background:#fff;padding:1rem 0 2rem}.recipe-content-grid,.recipe-source{width:100%}.recipe-content-grid{grid-template-columns:.8fr 1.4fr}}.administrator-form input,.setup-link textarea{width:100%;min-height:2.75rem;padding:var(--space-2);color:var(--color-text);background:var(--color-surface);border:.0625rem solid var(--color-border);border-radius:var(--radius-small);font:inherit}.roadmap-page{max-width:68rem}.roadmap-hero{background:radial-gradient(circle at 92% 15%, color-mix(in srgb, var(--color-plum) 22%, transparent), transparent 17rem), linear-gradient(135deg, color-mix(in srgb, var(--color-sage-soft) 76%, var(--color-surface)), var(--color-surface));border:.0625rem solid var(--color-border);border-radius:var(--radius-large);box-shadow:var(--shadow-card);gap:var(--space-5);padding:clamp(1.5rem,6vw,3rem);display:grid;position:relative;overflow:hidden}.roadmap-hero:after{content:"";border:.125rem solid color-mix(in srgb, var(--color-sage) 28%, transparent);border-radius:50% 15%;width:8rem;height:8rem;position:absolute;top:-2rem;right:-1rem;transform:rotate(25deg)}.roadmap-hero>*{z-index:1;position:relative}.roadmap-hero p:last-child{max-width:43rem;color:var(--color-text-muted);margin-bottom:0;font-size:1.05rem;line-height:1.65}.roadmap-progress{align-content:end;gap:.25rem;min-width:10rem;display:grid}.roadmap-progress strong{color:var(--color-plum-strong);font-family:Georgia,Times New Roman,serif;font-size:2.8rem;line-height:1}.roadmap-progress>span{color:var(--color-text-muted);font-size:.85rem;font-weight:700}.roadmap-progress>div{height:.5rem;margin-top:var(--space-2);background:color-mix(in srgb, var(--color-border) 72%, transparent);border-radius:99rem;overflow:hidden}.roadmap-progress>div>span{background:linear-gradient(90deg, var(--color-sage), var(--color-plum));border-radius:inherit;height:100%;display:block}.roadmap-legend{padding-inline:var(--space-2);gap:var(--space-3);flex-wrap:wrap;display:flex}.roadmap-status{width:fit-content;color:var(--color-text-muted);white-space:nowrap;align-items:center;gap:.35rem;font-size:.76rem;font-weight:750;display:inline-flex}.roadmap-status svg{flex:none;width:1.15rem;height:1.15rem}.roadmap-status--complete{color:var(--color-sage)}.roadmap-status--in_progress{color:var(--color-plum-strong)}.roadmap-timeline{gap:var(--space-4);display:grid;position:relative}.roadmap-timeline:before{content:"";background:color-mix(in srgb, var(--color-sage) 45%, var(--color-border));width:.125rem;position:absolute;top:2rem;bottom:2rem;left:.45rem}.roadmap-milestone{background:color-mix(in srgb, var(--color-surface) 96%, transparent);border:.0625rem solid var(--color-border);border-radius:var(--radius-large);margin-left:1.75rem;padding:clamp(1.25rem,4vw,2rem);position:relative;box-shadow:0 .75rem 2rem #28241f12}.roadmap-milestone__marker{background:var(--color-surface);border:.18rem solid var(--color-border);border-radius:50%;width:.95rem;height:.95rem;position:absolute;top:2rem;left:-1.72rem}.roadmap-milestone--complete .roadmap-milestone__marker{background:var(--color-sage);border-color:var(--color-sage-soft)}.roadmap-milestone--in_progress .roadmap-milestone__marker{background:var(--color-plum);border-color:color-mix(in srgb, var(--color-plum) 25%, var(--color-surface));box-shadow:0 0 0 .35rem color-mix(in srgb, var(--color-plum) 12%, transparent)}.roadmap-milestone__header{cursor:pointer;justify-content:space-between;align-items:flex-start;gap:var(--space-3);flex-wrap:wrap;list-style:none;display:flex}.roadmap-milestone__header::-webkit-details-marker{display:none}.roadmap-milestone__summary-meta{color:var(--color-text-muted);justify-items:end;gap:.4rem;font-size:.75rem;font-weight:700;display:grid}.roadmap-milestone__expand{color:var(--color-plum-strong)}.roadmap-milestone__expand:after{content:" ↓"}.roadmap-milestone[open] .roadmap-milestone__expand:after{content:" ↑"}.roadmap-kicker{margin-bottom:var(--space-1);color:var(--color-sage);letter-spacing:.1em;text-transform:uppercase;font-size:.73rem;font-weight:800}.roadmap-milestone__header h2,.roadmap-ideas h3{margin-bottom:var(--space-2);color:var(--color-text);font-family:Georgia,Times New Roman,serif}.roadmap-milestone__header h2{font-size:clamp(1.55rem,5vw,2.15rem)}.roadmap-milestone__header p:last-child{max-width:46rem;color:var(--color-text-muted);margin-bottom:0;line-height:1.55}.roadmap-feature-list,.roadmap-note-list{margin:var(--space-5) 0 0;gap:var(--space-2);padding:0;list-style:none;display:grid}.roadmap-feature-list>li{padding-block:var(--space-2);border-bottom:.0625rem solid color-mix(in srgb, var(--color-border) 65%, transparent);gap:var(--space-2);grid-template-columns:1.2rem minmax(0,1fr);display:grid}.roadmap-feature-list>li:last-child{border-bottom:0}.roadmap-feature-list .roadmap-status span{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.roadmap-feature-list h3{margin:0 0 .25rem;font-size:.98rem}.roadmap-feature-list p{color:var(--color-text-muted);margin:0;font-size:.9rem;line-height:1.5}.roadmap-ideas{margin-top:var(--space-5);padding:var(--space-4);background:color-mix(in srgb, var(--color-sage-soft) 52%, var(--color-surface));border:.0625rem solid color-mix(in srgb, var(--color-sage) 35%, var(--color-border));border-radius:var(--radius-small)}.roadmap-ideas__heading{justify-content:space-between;align-items:start;gap:var(--space-3);display:flex}.roadmap-ideas__heading h3{margin:0;font-size:1.25rem}.roadmap-ideas__heading>span{color:var(--color-text-muted);white-space:nowrap;font-size:.78rem;font-weight:750}.roadmap-ideas__empty,.roadmap-ideas__loading{margin:var(--space-4) 0 0;color:var(--color-text-muted);font-size:.9rem;font-style:italic}.roadmap-note-list>li{padding:var(--space-3);background:color-mix(in srgb, var(--color-surface-raised) 88%, transparent);border:.0625rem solid color-mix(in srgb, var(--color-border) 75%, transparent);border-radius:var(--radius-small)}.roadmap-note__meta{color:var(--color-text-muted);align-items:center;gap:var(--space-2);flex-wrap:wrap;font-size:.73rem;display:flex}.roadmap-note__kind{color:var(--color-plum-strong);background:color-mix(in srgb, var(--color-plum) 13%, transparent);border-radius:99rem;padding:.2rem .5rem;font-weight:800}.roadmap-note__kind--comment{color:var(--color-sage);background:color-mix(in srgb, var(--color-sage) 13%, transparent)}.roadmap-note-list p{margin:var(--space-2) 0 0;white-space:pre-wrap;line-height:1.55}.roadmap-note-form{margin-top:var(--space-4);padding-top:var(--space-4);border-top:.0625rem solid color-mix(in srgb, var(--color-sage) 35%, var(--color-border));gap:var(--space-3);display:grid}.roadmap-note-form label{color:var(--color-text);gap:.35rem;font-size:.85rem;font-weight:750;display:grid}.roadmap-note-form select,.roadmap-note-form textarea{width:100%;min-height:3rem;color:var(--color-text);background:var(--color-surface-raised);border:.0625rem solid var(--color-border);border-radius:var(--radius-small);font:inherit;padding:.7rem .8rem}.roadmap-note-form textarea{resize:vertical;min-height:6.5rem;line-height:1.5}.roadmap-note-form__footer{justify-content:space-between;align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.roadmap-form-message{color:var(--color-sage);font-size:.82rem;font-weight:700}.roadmap-form-message--error{color:var(--color-danger)}.roadmap-source-note{padding-inline:var(--space-2);color:var(--color-text-muted);margin:0;font-size:.82rem;line-height:1.5}@media (width>=46rem){.roadmap-hero{grid-template-columns:minmax(0,1fr) auto}.roadmap-note-form{grid-template-columns:12rem minmax(0,1fr)}.roadmap-note-form__footer{grid-column:1/-1}}@media (prefers-reduced-motion:no-preference){.roadmap-milestone{transition:border-color .16s ease-out,transform .16s ease-out}.roadmap-milestone:hover{border-color:color-mix(in srgb, var(--color-sage) 60%, var(--color-border));transform:translateY(-.1rem)}}.administrator-list{gap:.75rem;margin:1rem 0;padding:0;list-style:none;display:grid}.administrator-row,.administrator-edit-form,.administrator-confirmation{border:1px solid var(--color-border);border-radius:.75rem;padding:1rem}.administrator-row{justify-content:space-between;align-items:center;gap:1rem;display:flex}.administrator-row strong,.administrator-row span{display:block}.administrator-row span{color:var(--color-text-muted);font-size:.875rem}.administrator-row .administrator-you{color:var(--color-sage);font-weight:700}.administrator-actions{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.administrator-edit-form,.administrator-confirmation{gap:.75rem;margin:1rem 0;display:grid}.administrator-edit-form label{gap:.35rem;font-weight:700;display:grid}.administrator-edit-form input{background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text);font:inherit;border-radius:.5rem;padding:.7rem}.text-button--danger,.danger-button{color:var(--color-danger)}.recipe-delete-confirmation{background:color-mix(in srgb, var(--color-danger) 7%, var(--color-surface));border:1px solid color-mix(in srgb, var(--color-danger) 45%, var(--color-border));border-radius:.75rem;gap:.75rem;max-width:48rem;margin:0 0 clamp(1.5rem,4vw,2.5rem);padding:1rem;display:grid}.recipe-delete-confirmation h2,.recipe-delete-confirmation p{margin:0}.recipe-delete-confirmation__actions{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.danger-button{font:inherit;background:0 0;border:1px solid;border-radius:.5rem;padding:.65rem .85rem;font-weight:700}@media (width<=520px){.administrator-row{flex-direction:column;align-items:flex-start}}.field-optional{color:var(--color-text-muted);font-weight:400}.setup-link{padding:var(--space-3);background:var(--color-sage-soft);border-radius:var(--radius-small);gap:var(--space-2);display:grid}.setup-link h4,.setup-link p{margin:0}.setup-link textarea{resize:vertical;min-height:5.5rem}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}
