@font-face{font-family:DM Sans;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/dm-sans-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/dm-sans-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{color:#273c32;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--green:#35634a;--green-dark:#254d38;--muted:#626d60;--border:#dfe4dc;background:#fff;font-family:DM Sans,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-weight:400}*{box-sizing:border-box}body{min-width:320px;margin:0}button,input,select{font:inherit}button{cursor:pointer}button,a,input,select{-webkit-tap-highlight-color:transparent}button{color:inherit}button:disabled{cursor:not-allowed;opacity:.45}button,input,select{outline-offset:4px}:focus-visible{outline:2px solid #467b56}button{border:0}button,a{touch-action:manipulation}input,select{min-width:0}a{color:var(--green)}img{object-fit:cover;width:100%;height:100%;display:block}svg{vertical-align:middle;flex-shrink:0}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:inherit}::selection{color:#254d38;background:#dce9ce}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-delay:0s!important}}.app-shell{min-height:100vh}.app-header{z-index:20;border-bottom:1px solid var(--border);background:#fff;position:sticky;top:0}.header-content{align-items:center;gap:32px;max-width:1040px;margin:0 auto;padding:12px 24px;display:flex}.brand{color:var(--green);letter-spacing:-1px;background:0 0;min-height:44px;padding:0;font-size:24px;font-weight:700}.main-nav{gap:4px;display:flex}.nav-item{min-height:44px;color:var(--muted);background:0 0;border-radius:5px;justify-content:center;align-items:center;gap:8px;padding:0 16px;font-size:14px;display:flex}.nav-item:hover,.nav-item.active{color:var(--green);background:#edf3ed}.nav-item.active{font-weight:600}.nav-count{font-size:12px}main{max-width:1040px;margin:0 auto;padding:28px 24px 48px}.page-heading,.section-heading,.header-actions{justify-content:space-between;align-items:center;gap:12px;display:flex}.page-heading{margin-bottom:24px}.section-heading{margin:20px 0 16px;font-size:14px}h1{letter-spacing:-.6px;font-size:26px;font-weight:650}h2{font-size:17px;font-weight:600;line-height:1.4}h3{font-size:17px;font-weight:600}.count{margin-left:6px;font-size:16px;font-weight:400}.muted{color:var(--muted)}.small{font-size:13px}.button,.icon-button,.text-button{border-radius:5px;min-height:44px;font-size:14px}.button{justify-content:center;align-items:center;gap:8px;padding:0 16px;display:inline-flex}.primary{background:var(--green);color:#fff}.primary:hover:not(:disabled){background:var(--green-dark)}.secondary{border:1px solid var(--border);background:#fff}.secondary:hover:not(:disabled){background:#f3f5f2}.icon-button{min-width:44px;color:var(--muted);background:0 0;place-items:center;padding:10px;display:inline-grid}.icon-button:hover:not(:disabled),.is-locked{color:var(--green);background:#edf3ed}.text-button{color:var(--green);text-underline-offset:3px;background:0 0;padding:0 4px;text-decoration:underline}input:not([type=checkbox]),select{border:1px solid var(--border);min-height:44px;color:inherit;background:#fff;border-radius:5px;padding:8px 12px;font-size:16px}input::placeholder{color:#70796e}input[type=checkbox]{width:18px;height:18px;accent-color:var(--green);cursor:pointer;flex-shrink:0}.checkbox-label{cursor:pointer;align-items:center;gap:8px;min-height:44px;font-size:14px;display:inline-flex}.search-row{gap:12px;display:flex}.search-row>input{flex:1;width:100%}.search-row>select{width:160px}.filter-row{flex-wrap:wrap;align-items:center;gap:8px 16px;margin:12px 0 20px;display:flex}.filter-chips{flex-wrap:wrap;gap:6px;display:flex}.filter-chip{border:1px solid var(--border);min-height:44px;color:var(--muted);background:#fff;border-radius:5px;padding:0 10px;font-size:13px}.filter-chip.selected{color:var(--green);background:#edf3ed;border-color:#73916f}.filter-explanation{margin:-8px 0 16px;font-size:13px}.recipe-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.recipe-card{border:1px solid var(--border);border-radius:6px;align-items:flex-start;gap:16px;padding:16px;display:flex}.image-open{background:#f1f3ef;border-radius:4px;flex-shrink:0;width:104px;height:104px;padding:0;overflow:hidden}.card-body{flex:1;min-width:0}.card-title{text-align:left;background:0 0;min-height:44px;padding:0;display:block}.card-title:hover{color:var(--green)}.card-body>p{color:var(--muted);margin-top:4px;font-size:13px;line-height:1.6}.card-footer{color:var(--muted);margin-top:10px;font-size:12px}.photo-disclaimer{margin-top:16px;font-size:12px}.empty-state{border:1px solid var(--border);text-align:center;border-radius:6px;padding:36px 16px}.empty-state p{color:var(--muted);margin:12px 0;font-size:14px}.empty-state .button{margin-top:16px}.plan-settings{border:1px solid var(--border);border-radius:6px;grid-template-columns:140px 140px 1fr auto;gap:16px;padding:20px;display:grid}.setting-field label,.custom-field label{margin-bottom:6px;font-size:13px;display:block}.setting-field select,.custom-field input,.custom-field select{width:100%}.batch-setting,.plan-settings>.button{align-self:end}.settings-hint{grid-column:1/-1;font-size:13px;line-height:1.6}.filter-notice{flex-wrap:wrap;align-items:center;gap:6px 16px;margin-bottom:16px;font-size:13px;display:flex}.plan-list{border:1px solid var(--border);border-radius:6px;overflow:hidden}.plan-day{border-bottom:1px solid var(--border);grid-template-columns:70px minmax(0,1fr) auto;align-items:center;gap:16px;padding:16px;display:grid}.plan-day:last-child{border-bottom:0}.day-number{font-size:14px;font-weight:600}.plan-recipe p{font-size:13px;line-height:1.6}.plan-actions{gap:4px;display:flex}.leftover-day{background:#f7f8f5}.locked-day .day-number{color:var(--green)}.shopping-layout{gap:24px;display:grid}.custom-item-panel{border:1px solid var(--border);border-radius:6px;margin:0 0 24px;padding:0 16px}.custom-item-panel summary{cursor:pointer;min-height:48px;padding:12px 0;font-size:14px;font-weight:500}.custom-item-panel form{grid-template-columns:minmax(140px,2fr) 80px 100px minmax(140px,1fr) auto;align-items:end;gap:12px;padding:4px 0 16px;display:grid}.group-heading{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding-bottom:8px;display:flex}.group-heading h2{font-size:15px}.group-heading>span{font-size:12px}.shopping-item{border-bottom:1px solid #eef0eb;align-items:center;gap:8px;display:flex}.shopping-item label{cursor:pointer;flex:1;align-items:center;gap:12px;min-height:52px;padding:10px 0;font-size:14px;display:flex}.item-name{line-height:1.5}.shopping-item strong{white-space:nowrap;margin-left:auto;font-size:13px;font-weight:500}.checked-item .item-name,.checked-item strong{color:#747e6f;text-decoration:line-through}.recipe-dialog{border:1px solid var(--border);width:min(640px,100vw - 24px);max-height:calc(100dvh - 32px);color:inherit;background:#fff;border-radius:8px;padding:0}.recipe-dialog::backdrop{background:#0006}.dialog-body{padding:24px}.dialog-heading{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px;display:flex}.dialog-heading h2{padding-top:6px;font-size:22px}.dialog-heading .icon-button{margin:-4px -8px 0 0}.dialog-body>p{font-size:14px;line-height:1.6}.recipe-meta{flex-wrap:wrap;gap:16px;margin:16px 0 8px;display:flex}.recipe-meta>span{color:var(--muted);align-items:center;gap:6px;font-size:13px;display:flex}.recipe-tags{font-size:13px}.ingredients-heading{justify-content:space-between;align-items:center;gap:12px;margin:24px 0 8px;display:flex}.portion-stepper{border:1px solid var(--border);border-radius:5px;align-items:center;display:flex}.portion-stepper>span{text-align:center;min-width:62px;font-size:13px}.ingredient-list{margin:0 0 28px;padding:0;list-style:none}.ingredient-list li{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:16px;padding:12px 0;font-size:14px;line-height:1.6;display:flex}.ingredient-list strong{white-space:nowrap;font-weight:500}.instruction-list{margin:16px 0 0;padding-left:22px}.instruction-list li{margin-bottom:12px;padding-left:4px;font-size:14px;line-height:1.8}.add-to-plan{border-top:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:12px;margin-top:24px;padding-top:20px;display:flex}.add-to-plan>div{width:100%}.add-to-plan label{font-size:15px;font-weight:600}.add-to-plan p{margin-top:6px}.add-to-plan select{flex:1}.toast-region{z-index:100;width:max-content;max-width:calc(100vw - 24px);position:fixed;bottom:20px;left:50%;transform:translate(-50%)}.toast{color:#fff;background:#263e2b;border-radius:6px;align-items:center;gap:8px;padding:8px 8px 8px 16px;font-size:14px;line-height:1.5;display:flex}.toast .icon-button{color:#fff}.toast .icon-button:hover{background:#ffffff1a}.storage-warning{color:#6a5529;background:#fff8e9;border:1px solid #dccba6;border-radius:6px;justify-content:space-between;align-items:center;gap:12px;margin-bottom:24px;padding:12px 16px;font-size:14px;line-height:1.6;display:flex}.skip-link{z-index:200;background:var(--green);color:#fff;padding:12px;position:fixed;top:-70px;left:16px}.skip-link:focus{top:12px}@media (width<=800px){.recipe-grid{grid-template-columns:1fr}.plan-settings,.custom-item-panel form{grid-template-columns:1fr 1fr}.custom-name,.custom-category{grid-column:1/-1}}@media (width<=600px){.header-content{flex-wrap:wrap;gap:4px;padding:8px 16px}.brand{text-align:left;width:100%;font-size:22px}.main-nav{width:100%}.nav-item{flex:1;padding:0 12px;font-size:13px}main{padding:24px 16px 40px}h1{font-size:23px}.page-heading{flex-wrap:wrap;align-items:flex-start;gap:16px}.header-actions{flex-wrap:wrap;gap:8px}.button{padding:0 12px;font-size:13px}.search-row{flex-wrap:wrap;gap:8px}.search-row>input{flex-basis:100%}.search-row>select{width:100%}.recipe-card{gap:12px;padding:12px}.image-open{width:88px;height:88px}.card-title h2{font-size:16px}.plan-settings{gap:16px 12px;padding:16px}.batch-setting,.plan-settings>.button{grid-column:1/-1}.plan-day{grid-template-columns:1fr auto;gap:0 12px;padding:12px 16px}.day-number{grid-area:1/1}.plan-actions{grid-area:1/2}.plan-recipe{grid-area:2/1/auto/-1}.dialog-body{padding:20px}.dialog-heading h2{font-size:20px}.ingredients-heading{flex-wrap:wrap}.ingredient-list li{font-size:13px}}
