#closemenu{display:none}#menubackdrop{display:none}.allergy-menu{position:relative;align-self:end}.allergy-menu>summary{cursor:pointer;min-height:48px;padding:12px 16px;border:1px solid var(--line);border-radius:10px;background:var(--field);font-weight:600}.allergy-options{position:absolute;z-index:15;top:100%;right:0;width:min(380px,calc(100vw - 32px));padding:20px;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:0 10px 30px var(--shadow);max-height:65dvh;overflow:auto}#allergychoices{display:grid;grid-template-columns:1fr 1fr;gap:8px}#allergychoices label{display:flex;align-items:center;gap:8px;font-size:14px;width:auto}#allergychoices input{width:20px;height:20px;min-height:20px;flex-shrink:0}#allergyreport{padding:18px;background:var(--soft);border:1px solid var(--line);border-radius:12px;line-height:1.6}.ingredient-allergens{font-size:12px;font-weight:400;line-height:1.6;margin-top:8px}.ingredient-allergens summary{cursor:pointer;min-height:32px;display:list-item}.ingredient-allergens ul{padding-left:18px}.ingredient-allergens p{font-size:12px}.ingredient-allergens strong{font-weight:600}
@media(max-width:1100px){
 #menubackdrop:not([hidden]){display:block;position:fixed;inset:0;background:#0006;z-index:39}
 #appheader #mainnav{display:flex;position:fixed;inset:0 0 0 auto;width:33.333vw;height:100dvh;max-height:100dvh;overflow-y:auto;border-radius:0;border:0;border-left:1px solid var(--line);padding:16px 8px;flex-direction:column;align-items:stretch;justify-content:flex-start;transform:translateX(100%);visibility:hidden;transition:transform .2s ease,visibility .2s;z-index:40;box-shadow:-8px 0 30px var(--shadow)}
 #appheader.menu-open #mainnav{transform:translateX(0);visibility:visible;display:flex}
 #appheader #mainnav button{font-size:13px;overflow-wrap:anywhere;padding:12px 6px;line-height:1.35;white-space:normal;min-width:0}
 #appheader #mainnav #closemenu{display:block;align-self:flex-end;width:44px;font-size:26px;padding:2px;margin-bottom:16px}
 #appheader #mainnav .account-nav{margin-top:auto;padding-top:18px}
 body:has(#appheader.menu-open){overflow:hidden}
}
@media(max-width:700px){.allergy-menu{width:100%}.allergy-options{position:relative;width:100%;box-shadow:none;margin-top:8px;top:auto;right:auto}}
@media(prefers-reduced-motion:reduce){#appheader #mainnav{transition:none}}
/* iOS date controls otherwise keep an intrinsic width wider than their grid cell. */
.weekbar,.weekbar .plan-date-field{min-width:0;max-width:100%}.weekbar .plan-date-field{overflow:hidden}.plan-date-field input[type=date]{display:block;box-sizing:border-box;width:100%;min-width:0;max-width:100%;inline-size:100%;min-inline-size:0}.plan-date-field input[type=date]::-webkit-date-and-time-value{text-align:left;min-width:0}.plan-date-field input[type=date]::-webkit-datetime-edit{min-width:0;padding:0}
@media(max-width:700px){.weekbar{display:grid;grid-template-columns:minmax(0,1fr) 90px}.weekbar .plan-date-field{width:100%;min-width:0;flex-basis:auto}.weekbar .plan-length{width:90px;min-width:0}.weekbar .plan-length input{width:100%;min-width:0}.weekbar .allergy-menu,.weekbar #weekdates,.weekbar #saveweek{grid-column:1/-1}.plan-date-field #weekselect{min-width:0;width:100%;max-width:100%;padding:10px 8px}.weekbar button{min-width:0;white-space:normal}}
@media print{#menubackdrop,.allergy-menu,#mainnav,.ingredient-allergens{display:none!important}}
/* One control geometry for date, day count and allergy selector. */
.weekbar .plan-date-field,.weekbar .plan-length{gap:8px;align-self:end;overflow:visible}
.weekbar .plan-date-field #weekselect,.weekbar .plan-length #plandaycount,.weekbar #allergymenu>summary{height:50px;min-height:50px;max-height:50px;border:1px solid var(--line);border-radius:10px;background:var(--field);padding:10px 12px;box-sizing:border-box;font:inherit;font-size:16px;line-height:28px;margin:0}
.weekbar .plan-date-field #weekselect{width:0;min-width:100%;max-width:100%;appearance:none;-webkit-appearance:none}
.weekbar #allergymenu>summary{white-space:nowrap}
.weekbar .hide-allergy-label{display:flex;align-items:center;gap:10px;width:100%;padding-top:14px;margin-top:14px;border-top:1px solid var(--line);font-weight:600}
.hide-allergy-label input{width:20px;height:20px;min-height:20px;flex-shrink:0}
.general-sources .nutrition-sources{border-top:0;margin-top:8px}
/* A light chevron replaces the browser's heavy disclosure triangle. */
.weekbar #allergymenu>summary,.ingredient-allergens>summary{list-style:none;display:flex;align-items:center;gap:10px;cursor:pointer}
.weekbar #allergymenu>summary::-webkit-details-marker,.ingredient-allergens>summary::-webkit-details-marker{display:none}
.weekbar #allergymenu>summary::marker,.ingredient-allergens>summary::marker{content:''}
.weekbar #allergymenu>summary::before,.ingredient-allergens>summary::before{content:'';display:block;flex:0 0 7px;width:7px;height:7px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(-45deg);transition:transform .16s ease;opacity:.7}
.weekbar #allergymenu[open]>summary::before,.ingredient-allergens[open]>summary::before{transform:rotate(45deg)}
@media(prefers-reduced-motion:reduce){.weekbar #allergymenu>summary::before,.ingredient-allergens>summary::before{transition:none}}
/* Expand with the page rather than creating a second scroll area. */
.allergy-options{max-height:none;overflow:visible}
#allergychoices{row-gap:3px;column-gap:8px}
#allergychoices label{margin:0;padding:2px 0;min-height:28px;line-height:1.35}
.allergy-options>p:first-child{margin-top:0;margin-bottom:12px}
.allergy-options>p:last-child{margin-bottom:0}
