:root{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#24332c;background:#f7f8f7;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;font-weight:450;--green: #183e31;--ink: #23332c;--muted: #6e7b71;--line: #e3e8df;--gold: #edc765;--soft: #edf2e9;--paper: #fff;--red: #a3422b}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}button,a,input,select,textarea{outline-offset:4px}button:focus-visible,a:focus-visible{outline:3px solid #a67820}a,button{color:inherit}h1,h2,h3,p{margin:0}h1,h2{font-family:"DM Serif Display",Georgia,serif;font-weight:400}h1{font-size:2.6rem;line-height:1.16;letter-spacing:-.065rem}h2{font-size:1.65rem;line-height:1.2}h3{font-size:1.05rem;line-height:1.4;font-weight:650}.muted{color:var(--muted)}.small{font-size:.875rem;line-height:1.6}.app-shell{display:grid;grid-template-columns:232px minmax(0,1fr);min-height:100vh}.sidebar{padding:32px 21px 0;background:#fcfdfb;border-right:1px solid var(--line);height:100vh;position:sticky;top:0;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:11px;text-decoration:none;font-size:1.4rem;font-family:Georgia,serif;font-weight:700;letter-spacing:-.05em;white-space:nowrap}.brand-icon{display:grid;place-items:center;background:var(--green);color:#fff;width:35px;height:40px;border-radius:10px}.sidebar nav{display:grid;gap:7px}.nav-item{display:flex;align-items:center;gap:13px;padding:14px 15px;min-height:48px;border:0;background:none;color:#778276;border-radius:8px;text-align:left;font-size:.93rem}.nav-item.active{background:var(--green);color:#fff}.nav-item:hover:not(.active){background:var(--soft);color:var(--green)}.nav-count{margin-left:auto;border-radius:4px;background:#dce7d7;color:#315742;padding:2px 6px;font-size:.75rem}.active .nav-count{background:#476e58;color:#fff}.topbar{display:flex;justify-content:space-between;align-items:center;padding:20px 40px;border-bottom:1px solid var(--line);background:#fcfdfb;font-size:.8rem;color:var(--muted)}.topbar-right{display:flex;align-items:center;gap:24px}.status{display:flex;align-items:center;gap:7px;font-size:.72rem}.status svg{color:#6c896c}.main-content{padding:38px 40px 64px;max-width:1510px;margin:auto}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:32px}.page-heading h1+p{font-size:.9rem;margin-top:12px;line-height:1.6}.primary,.secondary{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid transparent;border-radius:7px;min-height:43px;padding:11px 17px;font-weight:600;font-size:.84rem;white-space:nowrap;text-decoration:none}.primary{background:var(--green);color:#fff;box-shadow:0 2px 2px #14362408}.primary:hover:not(:disabled){background:#275c43}.secondary{background:#fff;border-color:#dbe2d6;color:#435341}.secondary:hover:not(:disabled){border-color:#96ad8d;background:#f9fbf7}.icon-button{width:34px;min-width:34px;height:34px;padding:0;border:1px solid var(--line);border-radius:6px;display:grid;place-items:center;background:#fff}.icon-button:hover{background:#edf2e8}.text-button{border:0;background:none;display:inline-flex;align-items:center;justify-content:center;gap:6px;font-size:.79rem;font-weight:600;padding:7px 2px;color:#476b43;text-decoration:none}.button-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.week-bar{display:flex;align-items:center;gap:17px;margin-bottom:17px}.week-picker{display:flex;align-items:center;gap:13px}.week-picker>span{display:flex;align-items:center;gap:9px;font-weight:600;font-size:.88rem}.week-picker small{font-weight:400;color:#8a9588;margin-left:1px}.week-stat{margin-left:auto;color:#7a8778;font-size:.75rem}.week-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:9px}.day-card{border:1px solid #dce4d7;background:#fff;min-height:211px;border-radius:9px;overflow:hidden}.day-heading{display:flex;align-items:center;justify-content:space-between;padding:13px 12px;border-bottom:1px solid #edf0e8}.day-heading span{text-transform:uppercase;letter-spacing:.1em;font-size:.66rem;color:#7e8b7b;font-weight:600}.day-heading strong{font-size:.93rem;font-weight:550}.weekend{background:#f1f3e9}.weekend .day-heading{background:#edf0e2}.meal-button{border:0;background:none;width:100%;min-height:160px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:14px 9px;gap:8px;font-size:.73rem;color:#8b9586}.meal-button:hover{background:#f5f8ef}.meal-button>strong{font-size:.77rem;line-height:1.5;color:var(--ink);font-weight:600}.meal-button>span{line-height:1.5}.meal-button>span:not(.add-circle){font-size:.7rem}.add-circle{width:32px;height:32px;border:1px dashed #bac7b1;border-radius:50%;display:grid;place-items:center;color:#9daa92;margin-bottom:3px}.meal-symbol{width:33px;height:33px;display:grid;place-items:center;color:#526d48;background:#edf2e3;border-radius:9px;margin-bottom:2px}.meal-symbol.leftover{background:#f7efda;color:#9c7925}.meal-symbol.out{background:#f3e9e4;color:#a47558}.cooked{display:flex;align-items:center;gap:3px;color:#426734}.lunch-slot{display:flex;align-items:center;gap:4px;justify-content:center;width:100%;border:0;border-top:1px dashed #d6dfca;background:none;padding:12px 4px;font-size:.65rem;line-height:1.5;color:#697959;min-height:38px}.planner-note{display:flex;align-items:center;justify-content:space-between;margin:10px 0 25px;color:#8a9582;font-size:.74rem}.planner-note>span{display:flex;align-items:center;gap:7px}.section-label{display:flex;align-items:center;gap:8px;color:#6f6b43;font-size:.83rem}.section-label>span{margin-left:auto;font-size:.7rem}.recipe-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}.recipe-card{position:relative;border:1px solid #dfe6d9;border-radius:10px;background:#fff;overflow:hidden;display:flex;flex-direction:column;min-width:0;transition:box-shadow .15s,transform .15s}.recipe-card:hover{box-shadow:0 7px 22px #1d3c1b09;transform:translateY(-2px)}.recipe-card-top{display:flex;align-items:center;justify-content:space-between;padding:13px 16px 6px}.favorite-button{display:grid;place-items:center;min-width:32px;height:32px;background:none;border:0;color:#9da792}.favorite-button.is-favorite{color:#b28a3d}.recipe-title{border:0;background:none;text-align:left;padding:8px 20px 0}.recipe-title h3{font-family:Georgia,serif;font-weight:400;font-size:1.25rem;line-height:1.37}.recipe-source{font-size:.7rem;color:#8d9688;padding:8px 20px 0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.recipe-meta{display:flex;gap:15px;padding:19px 20px;font-size:.71rem;color:#788572}.recipe-meta>span{display:flex;gap:5px;align-items:center}.recipe-card-footer{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #edf0e8;margin:auto 20px 0;padding:8px 0}.recipe-card-footer>span{font-size:.7rem;text-transform:capitalize;color:#849079}.recipe-card-footer .text-button{font-size:.73rem}.recipe-warning{font-size:.7rem;margin:0 20px 15px;display:flex;gap:5px;color:#9b652d}.recipe-photo{padding:0;border:0;background:none;width:100%;height:145px;overflow:hidden}.recipe-photo img{width:100%;height:100%;object-fit:cover}.empty-state{display:flex;flex-direction:column;align-items:center;text-align:center;border:1px dashed #ced9c5;border-radius:10px;background:#fbfcf8;padding:42px 24px;gap:12px;color:#6e8167}.empty-state h3{color:var(--ink);font-family:Georgia,serif;font-size:1.4rem;font-weight:400}.empty-state p{font-size:.87rem;line-height:1.7}.empty-state .primary{margin-top:8px}.notice{display:flex;align-items:flex-start;gap:10px;border-radius:7px;padding:13px 15px;font-size:.83rem;line-height:1.6;margin-bottom:20px}.notice>svg{flex-shrink:0;margin-top:3px}.notice>span{flex:1}.notice .icon-button{background:none;border:0}.notice p+p{margin-top:8px}.notice.error{color:#993d32;background:#faeae5;border:1px solid #f0ccc1}.notice.warning{color:#866626;background:#faf2df;border:1px solid #eddfbb}.notice.success{color:#436341;background:#eaf1e3;border:1px solid #d7e6ca}.notice.onboarding{background:#eaf1e4;color:#43603a;align-items:center}.library-controls{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:24px}.search-field{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--line);border-radius:7px;padding:0 13px;min-width:260px;max-width:450px;flex:1;color:#8a9582}.search-field input{border:0;padding-left:0;background:none;box-shadow:none;min-height:43px}.segmented{display:flex;gap:3px;border:1px solid #e0e6d9;border-radius:7px;background:#edf1e7;padding:4px}.segmented button{border:0;background:none;padding:8px 13px;min-height:34px;border-radius:5px;display:flex;align-items:center;justify-content:center;gap:7px;font-size:.76rem;color:#7a866f;white-space:nowrap}.segmented button.selected{background:#fff;box-shadow:0 1px 4px #263f1512;color:#3c5830;font-weight:600}.discovery-box{margin-top:35px;border-top:1px solid var(--line);padding-top:28px}.discovery-box p{margin-top:9px}.inline-form{display:flex;gap:10px;margin-top:18px}.inline-form input{flex:1;min-width:0}.shopping-summary{display:flex;align-items:center;justify-content:space-between;padding:21px 0 26px}.shopping-summary>div:first-child{display:flex;align-items:center;gap:15px}.summary-number{font-family:Georgia,serif;font-size:3rem;color:#3b653d}.shopping-summary strong,.shopping-summary span:not(.summary-number){display:block}.shopping-summary strong{font-size:.87rem}.shopping-summary div>span:not(.summary-number){font-size:.75rem;margin-top:6px;color:var(--muted)}.grocery-category{background:#fff;border:1px solid var(--line);border-radius:9px;overflow:hidden;margin-bottom:22px}.grocery-category h2{display:flex;align-items:center;justify-content:space-between;font-family:inherit;font-size:.94rem;font-weight:600;padding:18px 21px;background:#f0f4eb}.grocery-category h2 span{color:#8e9a82;font-size:.73rem}.grocery-colheads,.grocery-main{display:grid;grid-template-columns:minmax(190px,1fr) 135px 135px 110px;gap:15px;align-items:center;padding:0 21px}.grocery-colheads{font-size:.65rem;text-transform:uppercase;letter-spacing:.07em;color:#919b89;min-height:38px;border-bottom:1px solid #eef1e9}.grocery-item+.grocery-item{border-top:1px solid #edf0e8}.grocery-main{min-height:82px}.grocery-name{display:flex;align-items:center;gap:13px;min-width:0}.grocery-name input{flex-shrink:0}.ingredient-toggle{display:flex;flex-direction:column;align-items:flex-start;border:0;background:none;text-align:left;padding:12px 0;min-width:0}.ingredient-toggle strong{font-size:.85rem;text-transform:capitalize;font-weight:550;line-height:1.5}.ingredient-toggle span{font-size:.65rem;color:#91a087;line-height:1.5;margin-top:3px}.grocery-name>svg{margin-left:auto;flex-shrink:0;color:#8ea081}.grocery-total{font-size:.83rem;color:#798671}.grocery-main small{display:none}.to-buy{font-size:.85rem;font-weight:600;line-height:1.6;color:#3f5f36}.have-field{display:flex;align-items:center;gap:6px;font-size:.75rem;color:#8b977f}.have-field input{width:63px;min-height:33px;height:33px;padding:5px 8px;font-size:.8rem}.grocery-item.checked .ingredient-toggle strong{text-decoration:line-through;color:#a3ad9c}.grocery-item.checked{background:#fcfdf9}.ingredient-detail{background:#fafbf8;padding:15px 22px 15px 56px;font-size:.8rem}.ingredient-detail p{display:flex;justify-content:space-between;gap:20px;line-height:1.9}.quantity-warning{font-size:.75rem;color:#9a743a;padding:0 21px 12px 55px}.offline-note{font-size:.75rem;line-height:1.7;color:#8b9981;display:flex;align-items:center;gap:9px}.conflict-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:10px}.settings-card{background:#fff;border:1px solid var(--line);padding:27px 29px;border-radius:10px;margin-bottom:24px;max-width:850px}.settings-card .section-label{margin-bottom:25px;color:#426439}.settings-card .section-label h2{font-size:1.4rem}.settings-card>p{font-size:.87rem;line-height:1.8;margin:12px 0 20px}.settings-card .button-row{margin-top:20px}.settings-card fieldset{margin:27px 0;padding:20px;border:1px solid #e0e6d9;border-radius:7px}.settings-card legend{font-weight:600;padding:0 9px;font-size:.85rem}.source-options{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:17px}.member-list{margin-bottom:20px}.member-list>div{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line);font-size:.84rem}.member-list small{margin-left:auto;color:var(--muted)}label:not(.check-label):not(.file-button):not(.have-field):not(.search-field):not(.recipe-filter-label){display:block;font-size:.83rem;font-weight:550;color:#506148;margin-bottom:18px}label input:not([type=checkbox]):not([type=file]),label textarea,label select{display:block;margin-top:8px}input:not([type=checkbox]):not([type=file]),select,textarea{border:1px solid #dce3d6;border-radius:6px;min-height:42px;background:#fff;color:#3a4c32;padding:10px 11px;width:100%;font-size:.87rem;line-height:1.5}input::placeholder,textarea::placeholder{color:#9ba692;font-weight:400}input:focus,textarea:focus,select:focus{outline:2px solid #a9be91;outline-offset:1px}textarea{resize:vertical}input[type=checkbox]{accent-color:var(--green);width:18px;height:18px;cursor:pointer;vertical-align:middle}input:disabled{background:#f4f6ee!important}.check-label{display:flex;align-items:center;gap:8px;font-size:.83rem;font-weight:450;line-height:1.65;margin:10px 0;cursor:pointer}.label-note{font-size:.73rem;font-weight:400;color:#96a18c;margin-left:7px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.form-grid>label{min-width:0}.file-button{position:relative;overflow:hidden;cursor:pointer}.file-button input{position:absolute;opacity:0;width:100%;height:100%;inset:0;cursor:pointer}.full-state{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:20px;min-height:100vh;color:var(--green)}.signin-page{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}.signin-content{max-width:620px;padding:80px 65px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center}.signin-content>.brand{margin-bottom:70px}.signin-content h1{font-size:3.5rem}.signin-content .primary{margin-top:12px}.modal{border:1px solid var(--line);border-radius:14px;background:#fffefb;box-shadow:0 20px 100px #15301235;color:var(--ink);padding:28px;width:calc(100% - 32px);max-width:560px;max-height:calc(100dvh - 48px);overflow-y:auto}.modal.wide{max-width:800px}.modal::backdrop{background:#14271e80;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.modal-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:22px}.modal-heading h2{font-size:1.65rem;padding-top:2px}.modal>p{font-size:.87rem;line-height:1.8;margin-bottom:24px}.modal form>p{margin:10px 0 18px}.modal-actions{display:flex;align-items:center;gap:12px;justify-content:flex-end;margin-top:26px;border-top:1px solid var(--line);padding-top:22px}.modal-actions .danger{margin-right:auto}.danger{color:#ad5540}.full-width{width:100%}.or-divider{border-top:1px solid var(--line);position:relative;margin:29px 0;text-align:center;height:1px}.or-divider span{background:#fffefb;color:#94a086;padding:0 12px;font-size:.75rem;position:relative;top:-12px}.recipe-detail-meta{display:flex;align-items:center;gap:20px;color:#829173;font-size:.82rem;margin-bottom:17px;flex-wrap:wrap}.recipe-detail-meta span{display:flex;align-items:center;gap:6px}.source-link{display:inline-flex;align-items:center;gap:7px;font-size:.8rem;color:#738365;margin-bottom:25px}.recipe-detail-columns{display:grid;grid-template-columns:1fr 1.45fr;gap:35px;margin-top:12px}.recipe-detail-columns h3{font-family:Georgia,serif;font-size:1.3rem;font-weight:400;margin-bottom:20px}.ingredient-lines{padding:0;margin:0;list-style:none}.ingredient-lines li{padding:11px 0;border-bottom:1px solid var(--line);font-size:.87rem;line-height:1.7}.ingredient-lines li.ingredient-group{padding-top:16px;padding-bottom:4px;border-bottom:0}.instruction-list{padding-left:22px;margin:0}.instruction-list li{padding-left:6px;margin-bottom:22px;font-size:.88rem;line-height:1.85}.instruction-list li::marker{color:#6b815c;font-weight:700}.warning-text{color:#a26a32;font-size:.82rem;line-height:1.7}.parsed-preview{background:#f4f7ef;border:1px solid #e3eadb;padding:15px;border-radius:6px;font-size:.8rem;margin-bottom:22px}.parsed-preview>strong{display:block;margin-bottom:9px}.parsed-preview>div{display:flex;gap:10px;flex-wrap:wrap;border-top:1px solid #e3eadb;padding:8px 0}.parsed-preview>div>span:nth-child(2){margin-left:auto}.parsed-preview .warning-text{width:100%;font-size:.73rem}.meal-types{margin-bottom:22px}.meal-types button{flex:1}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.spin{animation:spin 1.2s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(min-width:1600px){.main-content{padding-left:60px;padding-right:60px}.day-card{min-height:236px}.meal-button{min-height:184px}.recipe-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:1150px){.app-shell{grid-template-columns:190px minmax(0,1fr)}.sidebar{padding:28px 14px 0}.brand{font-size:1.2rem;gap:8px}.brand-icon{width:31px;height:36px}.main-content{padding:28px 25px 48px}.topbar{padding-left:25px;padding-right:25px}.week-grid{gap:6px}.day-heading{padding:11px 9px}.day-heading span{font-size:.62rem}.meal-button{padding:10px 5px}.meal-button>strong{font-size:.71rem}.recipe-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.grocery-colheads,.grocery-main{grid-template-columns:minmax(150px,1fr) 95px 95px 80px;gap:10px;padding:0 16px}.grocery-name{gap:9px}.grocery-total,.to-buy{font-size:.76rem}.have-field input{width:51px}.week-bar{gap:11px}.week-picker{gap:8px}.week-picker>span{font-size:.79rem;gap:6px}.week-picker small{display:none}.page-heading h1{font-size:2.3rem}.library-controls{align-items:stretch}.segmented button{padding:8px 10px}.source-options{grid-template-columns:1fr}}@media(max-width:800px){.app-shell{display:block;padding-bottom:73px}.sidebar{position:fixed;inset:auto 0 0;height:70px;z-index:15;border:0;border-top:1px solid #dce4d5;background:#fcfdfbf5;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);padding:0 8px;display:block}.sidebar>.brand{display:none}.sidebar nav{display:grid;grid-template-columns:repeat(4,1fr);gap:2px}.nav-item{flex-direction:column;gap:4px;justify-content:center;padding:10px 5px;border-radius:0;font-size:.66rem;height:70px;position:relative;min-height:44px}.nav-item.active{background:none;color:var(--green);font-weight:700}.nav-item.active:before{content:"";position:absolute;top:0;left:28%;right:28%;height:3px;background:var(--green);border-radius:0 0 4px 4px}.nav-item svg{width:20px;height:20px}.nav-count{position:absolute;top:7px;right:23%;font-size:.55rem;padding:1px 4px}.active .nav-count{background:#dce7d7;color:#315742}.topbar{padding:15px 22px}.topbar>span{font-family:Georgia,serif;font-size:1.12rem;color:#36532c}.topbar>span:before{content:"friday table. ";font-weight:700;font-size:1.1rem}.topbar>span{font-size:0}.topbar-right{gap:10px}.status{font-size:.65rem}.main-content{padding:27px 20px 35px}.page-heading{align-items:flex-start;margin-bottom:25px;gap:18px}.page-heading h1{font-size:2.2rem}.page-heading h1+p{font-size:.83rem;line-height:1.7}.page-heading>.primary,.page-heading>.secondary{font-size:.74rem;padding:9px 12px;min-height:39px;margin-top:25px}.week-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.day-card{min-height:190px}.meal-button{min-height:145px}.day-heading{flex-direction:column;gap:6px;padding:11px 4px}.day-heading span{font-size:.58rem}.day-heading strong{font-size:.9rem}.meal-button>span:not(.add-circle){font-size:.61rem}.meal-button>strong{font-size:.68rem}.week-bar{flex-wrap:wrap;gap:7px}.week-stat{font-size:.68rem}.week-picker>span{font-size:.82rem}.recipe-card-top{padding:11px 13px 4px}.recipe-title{padding:8px 15px 0}.recipe-title h3{font-size:1.2rem}.recipe-source{padding:9px 15px 0}.recipe-meta{padding:17px 15px;gap:12px;font-size:.67rem}.recipe-card-footer{margin:0 15px}.grocery-main,.grocery-colheads{grid-template-columns:minmax(130px,1fr) 95px 100px 85px}.settings-card{padding:22px}.notice{font-size:.78rem;flex-wrap:wrap}.notice>span{flex-basis:70%}.notice>.icon-button{margin-left:auto}.notice>.text-button{margin-left:25px}.signin-content{padding:50px 35px}.signin-content h1{font-size:2.8rem}}@media(max-width:560px){.main-content{padding:24px 16px 35px}.topbar{padding:14px 16px}.page-heading{display:block;margin-bottom:22px}.page-heading h1{font-size:2.05rem}.page-heading>.primary,.page-heading>.secondary{margin-top:18px}.week-bar{justify-content:space-between;gap:10px}.week-bar>.text-button{font-size:.7rem}.week-stat{flex-basis:100%;margin-left:0;margin-top:3px}.week-grid{display:grid;grid-template-columns:1fr;gap:7px}.day-card{min-height:74px;display:grid;grid-template-columns:58px minmax(0,1fr);align-items:stretch;border-radius:8px}.day-heading{justify-content:center;border-right:1px solid var(--line);border-bottom:0;gap:4px;background:#f9fbf5}.day-heading span{font-size:.62rem}.day-heading strong{font-size:1rem}.meal-button{min-height:72px;flex-direction:row;align-items:center;justify-content:flex-start;gap:12px;text-align:left;padding:12px 16px}.meal-button>strong{font-size:.81rem;line-height:1.5;max-width:55%}.meal-button>span:not(.add-circle){font-size:.72rem}.meal-button>span:last-child:not(:first-child):not(.add-circle){margin-left:auto;text-align:right;font-size:.65rem;max-width:35%}.meal-button:not(:has(strong))>span:last-child{margin-left:0!important;font-size:.77rem!important;max-width:100%!important}.meal-button .meal-symbol{margin:0;min-width:30px;width:30px;height:30px}.meal-button .add-circle{width:26px;height:26px;margin:0;flex-shrink:0}.meal-button .add-circle svg{width:15px}.lunch-slot{grid-column:2;font-size:.74rem;justify-content:flex-start;padding:10px 10px 10px 18px}.planner-note{align-items:flex-start;gap:10px;margin-bottom:24px}.planner-note .text-button{font-size:.7rem;padding:0}.planner-note>span{font-size:.69rem;line-height:1.7}.section-label{font-size:.76rem}.recipe-grid{grid-template-columns:1fr;gap:14px}.recipe-card-top{padding:12px 16px 4px}.recipe-title{padding:7px 18px 0}.recipe-title h3{font-size:1.3rem}.recipe-source{padding:8px 18px 0;font-size:.73rem}.recipe-meta{padding:16px 18px;gap:18px;font-size:.75rem}.recipe-card-footer{margin:0 18px;padding:9px 0}.recipe-card-footer .text-button,.recipe-card-footer>span{font-size:.76rem}.library-controls{display:block}.search-field{max-width:100%;min-width:0;margin-bottom:15px}.library-controls .segmented{width:fit-content}.inline-form{flex-wrap:wrap}.inline-form input{flex-basis:100%}.inline-form .primary{width:100%}.shopping-summary{align-items:flex-start;gap:20px;flex-direction:column;padding:13px 0 24px}.shopping-summary .segmented{width:100%}.shopping-summary .segmented button{flex:1}.grocery-colheads{display:none}.grocery-category h2{padding:15px 16px}.grocery-main{display:grid;grid-template-columns:1fr 1fr 1fr;padding:14px 16px;gap:12px}.grocery-name{grid-column:1/-1;gap:12px}.ingredient-toggle{padding:0}.ingredient-toggle strong{font-size:.89rem}.ingredient-toggle span{font-size:.69rem}.grocery-main small{display:block;color:#929e89;font-size:.6rem;font-weight:450;text-transform:uppercase;letter-spacing:.06em;margin-bottom:5px}.grocery-total{padding-left:30px;font-size:.78rem}.to-buy{font-size:.83rem;text-align:right}.have-field{justify-content:center;gap:4px}.have-field input{width:55px;height:37px;min-height:37px}.have-field span{font-size:.65rem}.ingredient-detail{padding:15px 16px;font-size:.76rem}.ingredient-detail p{gap:15px}.grocery-item.checked .to-buy{color:#b0baa7}.settings-card{padding:21px 18px}.settings-card .section-label h2{font-size:1.3rem}.settings-card fieldset{padding:16px}.source-options{grid-template-columns:1fr}.form-grid{gap:14px}.label-note{display:block;margin:3px 0 0}.settings-card>.button-row{align-items:stretch;gap:10px}.settings-card>.button-row>*{flex:1}.modal{padding:22px 19px;max-height:calc(100dvh - 24px);width:calc(100% - 20px);border-radius:11px}.modal-heading h2{font-size:1.5rem}.modal-heading{gap:10px}.modal-actions{gap:9px;flex-wrap:wrap}.modal-actions .primary,.modal-actions .secondary{font-size:.78rem;padding:10px 13px}.meal-types button{font-size:.73rem;padding:8px 7px}.recipe-detail-columns{grid-template-columns:1fr;gap:25px}.recipe-detail-meta{gap:14px;font-size:.75rem}.notice{padding:12px}.notice>.text-button{font-size:.73rem;margin-left:0}.conflict-row .secondary{font-size:.69rem;min-height:36px;padding:7px 10px}.full-state h1{font-size:2rem}.signin-page{display:block}.signin-content{padding:33px 27px}.signin-content>.brand{margin-bottom:35px}.signin-content h1{font-size:2.6rem}.empty-state{padding:32px 20px}.source-options .check-label{font-size:.82rem}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}button,input,select,textarea{touch-action:manipulation}.nav-item{font-size:.875rem}.meal-button>strong{font-size:.875rem}.recipe-card-footer .text-button,.text-button,.have-field input{font-size:.875rem}.day-heading span{font-size:.75rem}@media(max-width:800px){.nav-item{font-size:.75rem}.meal-button>strong{font-size:.82rem}}@media(max-width:560px){.meal-button>strong{font-size:.875rem}.meal-button>span:last-child:not(:first-child):not(.add-circle){font-size:.75rem}.nav-item{font-size:.75rem}.grocery-main input[type=checkbox]{width:23px;height:23px}}.desktop-sync{display:flex;align-items:center;gap:12px}.desktop-sync .text-button{color:var(--muted);font-size:.73rem}.preview-badge{padding:4px 7px;border:1px solid #e0dfd3;background:#f7f5e9;border-radius:5px;color:#74694b;font-size:.7rem;min-height:28px;white-space:nowrap}.notice.success{padding:3px 9px;align-items:center;font-size:.76rem}.notice.success>svg{margin:0}@media(min-width:801px){.app-shell>main>.topbar{display:none}.app-shell .main-content{padding-top:18px}}@media(max-width:800px){.desktop-sync{display:none}}h1,h2,h3,.brand,.recipe-title h3,.recipe-detail-columns h3,.empty-state h3{font-family:inherit;letter-spacing:normal;font-weight:650}h1,.page-heading h1{font-size:1.4rem;line-height:1.3}h2{font-size:1.12rem}.app-shell{display:block;padding-bottom:0}.sidebar{position:sticky;top:0;inset-inline:0;height:64px;z-index:15;display:flex;flex-direction:row;align-items:center;justify-content:space-between;padding:0 max(24px,calc((100vw - 1120px)/2));background:#fff;border:0;border-bottom:1px solid var(--line)}.brand{font-size:1.05rem;gap:9px}.brand-icon{width:30px;height:32px;border-radius:6px}.sidebar nav{display:flex;gap:5px}.nav-item{padding:0 16px;height:44px;min-height:44px;gap:8px;font-size:.875rem}.nav-item.active{background:#e9f1eb;color:var(--green)}.topbar{max-width:1120px;margin:auto;padding:10px 0;min-height:36px;background:none;border:0}.topbar>span{visibility:hidden}.topbar-right{gap:8px}.status{color:#65756b}.main-content{max-width:1120px;padding:4px 0 24px}.page-heading{display:flex;align-items:center;gap:12px;margin:0 0 12px}.page-heading>.primary,.page-heading>.secondary{margin:0;min-height:40px;padding:8px 12px;font-size:.85rem}.primary,.secondary{min-height:44px;box-shadow:none}.icon-button{width:40px;height:40px;min-width:40px}.text-button{min-height:40px;font-size:.82rem}.week-bar{margin-bottom:10px;display:flex;flex-wrap:wrap;gap:8px 16px}.week-picker{gap:8px}.week-picker>span{gap:6px;font-size:.9rem}.week-picker>span>svg{display:none}.week-stat{font-size:.78rem;margin:0 0 0 auto;flex-basis:auto}.week-grid{display:grid;grid-template-columns:1fr;gap:0;border:1px solid var(--line);border-radius:8px;overflow:hidden}.day-card{display:grid;grid-template-columns:76px minmax(0,1fr);align-items:stretch;min-height:62px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:#fff}.day-card:last-child{border-bottom:0}.day-heading{grid-row:1 / span 2;display:flex;flex-direction:column;justify-content:center;gap:2px;padding:8px;background:#f4f6f4;border:0;border-right:1px solid var(--line)}.day-heading span{font-size:.73rem;letter-spacing:0;text-transform:none}.day-heading strong{font-size:1rem}.weekend .day-heading{background:#edf2ec}.meal-button{min-height:61px;display:grid;grid-template-columns:38px minmax(0,1fr) auto;grid-template-rows:auto auto;column-gap:12px;row-gap:1px;justify-content:start;align-content:center;align-items:center;padding:8px 16px;text-align:left;color:var(--muted)}.meal-button>strong{grid-column:2;font-size:.92rem;line-height:1.35;max-width:none;text-wrap:pretty}.meal-button>.dish-image,.meal-button>.dish-placeholder,.meal-button>.meal-symbol,.meal-button>.add-circle{grid-column:1;grid-row:1 / span 2;width:38px;height:38px;min-width:38px;margin:0;border-radius:5px}.meal-button>span:not(.add-circle):not(.dish-placeholder),.meal-button>span:last-child:not(:first-child):not(.add-circle){grid-column:2;font-size:.76rem;line-height:1.35;max-width:none;margin:0;text-align:left}.meal-button>.cooked{grid-column:3!important;grid-row:1 / span 2;font-size:.73rem!important}.meal-button:not(:has(strong))>span:last-child{grid-row:1 / span 2;font-size:.88rem!important}.meal-button .add-circle{border:0;background:#f2f5f1;border-radius:5px}.meal-button .add-circle svg{width:18px}.lunch-slot{grid-column:2;min-height:44px;padding:9px 16px;justify-content:flex-start;font-size:.82rem}.planner-note{margin:6px 0 8px;align-items:center;gap:10px}.planner-note>span{font-size:.78rem}.planner-note .text-button{padding:5px;font-size:.8rem}.plan-actions{display:flex;align-items:center;gap:16px;padding-top:4px}.notice{margin-bottom:12px;padding:10px 12px}.notice.onboarding{flex-wrap:wrap}.recipe-import-bar{display:flex;gap:8px;margin:0 0 12px}.recipe-pagination{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:10px 0;min-height:40px;color:var(--muted);font-size:.76rem}.recipe-pagination>div{display:flex;align-items:center;gap:8px}.recipe-pagination .icon-button{width:36px;height:36px;min-width:36px}.recipe-picker .recipe-pagination{font-size:.7rem;gap:5px;margin:5px 0}.recipe-picker .recipe-pagination>div{gap:5px}.primary.danger-action{background:#973b31}.primary.danger-action:hover:not(:disabled){background:#7d2e26}@media(max-width:380px){.recipe-pagination{flex-wrap:wrap}}.recipe-import-bar input{min-width:0;flex:1;margin:0}.library-controls{display:flex;gap:12px;margin-bottom:14px}.library-controls .search-field{flex:1;max-width:none;margin:0}.segmented{min-height:40px}.segmented button{min-height:38px}.recipe-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.recipe-card{border-radius:7px}.recipe-card:hover{transform:none;box-shadow:none}.recipe-card-top{position:absolute;top:6px;right:6px;padding:0;z-index:1;display:flex;gap:6px}.recipe-edit-button{display:grid;place-items:center;width:40px;height:40px;border:1px solid #ffffffb0;border-radius:50%;background:#ffffffec;color:#365545}.favorite-button{width:40px;height:40px;border:1px solid #ffffffb0;border-radius:50%;background:#ffffffec;color:#65766c}.favorite-button.is-favorite{color:#b55345}.recipe-photo{display:block;position:relative;width:100%;height:auto;aspect-ratio:4 / 3;min-height:0}.photo-match-label{position:absolute;bottom:6px;left:6px;padding:3px 6px;border-radius:4px;font-size:.65rem;color:#263c31;background:#fffffff0}.photo-match-note{display:block;margin-top:5px}.dish-image{display:block;object-fit:cover;width:100%;height:100%}.dish-placeholder{display:grid;place-items:center;width:100%;height:100%;background:#edf1ec;color:#96a196}.recipe-title{padding:10px 12px 0}.recipe-title h3{font-size:.91rem;line-height:1.4}.recipe-source{font-size:.72rem;padding:5px 12px 0;color:#647367}.recipe-meta{padding:9px 12px;gap:9px;font-size:.72rem;flex-wrap:wrap}.recipe-meta>span{gap:4px}.recipe-card-footer{margin:auto 12px 0;padding:2px 0;justify-content:flex-end}.recipe-card-footer .text-button{font-size:.79rem;min-height:40px}.recipe-card-footer .recipe-remove{min-width:40px;margin-right:auto;justify-content:center}.recipe-warning{margin:0 12px 8px;font-size:.72rem}.discovery-box{margin-top:18px;padding:16px}.discovery-box h2{font-size:1rem}.empty-state{padding:24px 16px}.empty-state h3{font-size:1.1rem}.shopping-summary{padding:4px 0 12px;gap:12px}.summary-number{font:650 1.4rem system-ui,sans-serif}.settings-card{padding:20px;margin-bottom:16px}.settings-card h2{font-size:1.1rem}.signin-page{display:grid;grid-template-columns:1fr;place-items:center;padding:24px;min-height:100dvh}.signin-content{padding:28px;max-width:440px;border:1px solid var(--line);border-radius:8px;background:#fff}.signin-content>.brand{margin-bottom:24px}.signin-content h1{font-size:1.4rem}.signin-content .primary{width:100%}.modal{padding:20px;border-radius:10px;background:#fff;max-width:600px}.modal-heading{margin-bottom:16px;gap:12px}.modal-heading h2{font-size:1.2rem;line-height:1.4}.modal-heading .icon-button{flex-shrink:0}.modal-actions{margin-top:16px;padding-top:12px;gap:8px}.modal form>.form-grid{gap:12px}.meal-types,.recipe-picker{margin-bottom:14px}.recipe-filters{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px;margin:8px 0 12px}.recipe-filters>label{flex:1;min-width:0;max-width:260px;display:flex;flex-direction:column;gap:4px;margin:0;font-size:.75rem;font-weight:600}.recipe-filters select{width:100%;min-width:0;min-height:42px;margin:0;padding:8px 10px;font-size:.85rem}.recipe-filters>button{min-height:42px;flex-shrink:0;font-size:.75rem}.recipe-more-filters{flex-basis:100%;min-width:0}.recipe-more-filters>summary,.recipe-metadata>summary{cursor:pointer;padding:10px 0;min-height:40px;font-size:.82rem;font-weight:600;color:var(--muted)}.metadata-filter-grid,.recipe-metadata-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:6px 0 10px}.metadata-filter-grid>label,.recipe-metadata-grid>label{min-width:0;margin:0;font-size:.75rem}.recipe-metadata-grid select{width:100%;min-width:0}.recipe-metadata{margin:6px 0 12px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.recipe-metadata p{margin:6px 0 10px}.metadata-dish-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 12px;padding:10px 0;border:0;margin:0}.metadata-dish-options legend{padding:0;font-size:.8rem;font-weight:600}.metadata-dish-options label{display:flex;align-items:center;gap:8px;min-height:40px;margin:0;font-size:.78rem}.metadata-dish-options input{flex-shrink:0}.recipe-metadata dl{margin:4px 0 10px;font-size:.82rem}.recipe-metadata dl>div{padding:4px 0}.recipe-metadata dt{color:var(--muted)}.recipe-metadata dd{margin:2px 0 0}.recipe-metadata dd small{display:block;color:var(--muted);font-size:.7rem;margin-top:2px}@media(max-width:600px){.recipe-filters.with-course{flex-wrap:wrap}.recipe-filters.with-course>label{max-width:none;flex-basis:calc(50% - 5px)}.recipe-filters.with-course>button{min-height:30px;padding:2px 0}}.recipe-picker .search-field{max-width:none;width:100%;margin:0 0 8px}.picker-tabs{display:flex;margin-bottom:6px}.picker-tabs button{flex:1;font-size:.78rem;padding:6px}.picker-results{max-height:280px;overflow-y:auto;overscroll-behavior:contain;border:1px solid var(--line);border-radius:5px}.picker-results>p{padding:12px}.picker-recipe-row{display:flex;align-items:center;border-bottom:1px solid var(--line);background:#fff}.picker-recipe-row:last-child{border-bottom:0}.picker-recipe-row>.icon-button{width:44px;min-width:44px;height:44px;margin-right:4px;border:0;color:#96534c}.picker-recipe-row>.icon-button:hover:not(:disabled){background:#fff1ee}.picker-recipe{display:flex;flex:1;min-width:0;align-items:center;gap:10px;padding:8px;border:0;background:#fff;width:100%;text-align:left;min-height:62px}.picker-recipe:hover{background:#f2f6f1}.picker-recipe>span:not(.dish-placeholder){flex:1;min-width:0}.picker-recipe strong{display:block;font-size:.84rem;line-height:1.35;font-weight:600}.picker-recipe small{display:block;font-size:.74rem;color:var(--muted);margin-top:3px}.picker-thumbnail{width:44px;height:44px;min-width:44px;border-radius:4px}.picker-recipe>svg{min-width:16px;color:#58755b}.picker-refresh{margin-top:4px}.picker-refresh details{margin:2px 0 8px}.selected-recipe{display:flex;align-items:center;width:100%;gap:10px;padding:8px;margin:0 0 14px;text-align:left;background:#f5f8f3;border:1px solid var(--line);border-radius:5px}.selected-recipe strong{font-size:.9rem;flex:1}.selected-recipe>span:last-child{font-size:.78rem;color:var(--green)}.recipe-detail-image{max-height:240px;aspect-ratio:16 / 7;border-radius:5px;margin-bottom:14px}.photo-credit,.recipe-award{font-size:.75rem;color:var(--muted);margin:-5px 0 12px;line-height:1.5}.recipe-detail-meta{gap:14px;margin-bottom:10px}.source-link{margin-bottom:12px}.recipe-detail-columns{gap:28px}.recipe-detail-columns h3{font-size:1rem;margin-bottom:8px}.ingredient-lines li{padding:7px 0;line-height:1.6}.instruction-list li{margin-bottom:14px;line-height:1.7}@media(max-width:1180px){.main-content,.topbar{margin-left:24px;margin-right:24px}}@media(max-width:800px){.app-shell{padding-bottom:calc(66px + env(safe-area-inset-bottom))}.sidebar{position:fixed;inset:auto 0 0;height:calc(64px + env(safe-area-inset-bottom));padding:0 6px env(safe-area-inset-bottom);border-top:1px solid var(--line);border-bottom:0;display:block;background:#fffffff5}.sidebar>.brand{display:none}.sidebar nav{display:grid;grid-template-columns:repeat(4,1fr);gap:3px}.nav-item{height:64px;padding:7px 4px;gap:3px;font-size:.75rem;border-radius:0;flex-direction:column;justify-content:center}.nav-item.active{background:transparent}.nav-item.active:before{height:2px}.topbar{padding:10px 0}.topbar>span{visibility:visible;font:650 1rem system-ui,sans-serif;color:var(--ink)}.topbar>span:before{content:none}.topbar .status{font-size:.7rem}.main-content,.topbar{margin-left:16px;margin-right:16px}.main-content{padding:6px 0 18px}.week-bar{gap:4px 10px}.week-picker>span{font-size:.81rem}.week-picker small{display:none}.week-bar>.text-button{font-size:.75rem;margin-left:auto}.week-stat{font-size:.73rem}.recipe-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.recipe-title h3{font-size:.86rem}.library-controls{flex-wrap:wrap}.library-controls .search-field{flex-basis:100%}.plan-actions{align-items:flex-start;gap:10px}.plan-actions .small{font-size:.74rem}.settings-card{padding:16px}}@media(max-width:560px){.main-content,.topbar{margin-left:12px;margin-right:12px}.page-heading h1{font-size:1.25rem}.page-heading>.primary,.page-heading>.secondary{font-size:.8rem;padding:8px 10px}.week-stat{flex-basis:100%;margin:0 0 3px}.day-card{grid-template-columns:54px minmax(0,1fr)}.meal-button{padding:7px 10px;column-gap:9px;grid-template-columns:34px minmax(0,1fr) auto}.meal-button>strong{font-size:.86rem}.meal-button>.dish-image,.meal-button>.dish-placeholder,.meal-button>.meal-symbol,.meal-button>.add-circle{width:34px;height:34px;min-width:34px}.meal-button>span:not(.add-circle):not(.dish-placeholder),.meal-button>span:last-child:not(:first-child):not(.add-circle){font-size:.72rem}.meal-button>.cooked{font-size:0!important}.meal-button>.cooked svg{width:16px;height:16px}.lunch-slot{padding-left:10px}.planner-note>span{font-size:.73rem}.planner-note .text-button{font-size:.73rem}.plan-actions{flex-direction:column;gap:4px}.plan-actions .secondary{min-height:40px}.recipe-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.recipe-title{padding:9px 10px 0}.recipe-source{padding:5px 10px 0}.recipe-meta{padding:7px 10px;gap:6px;font-size:.7rem}.recipe-meta>span>svg{width:12px}.recipe-card-footer{margin-left:10px;margin-right:10px}.recipe-card-footer .text-button{font-size:.76rem}.favorite-button{width:38px;height:38px;min-width:38px}.library-controls .segmented{width:100%}.library-controls .segmented button{flex:1}.modal{width:calc(100% - 16px);max-height:calc(100dvh - 20px);padding:16px}.modal-actions{position:sticky;bottom:-16px;background:#fff;margin-inline:-16px;padding:10px 16px;flex-wrap:wrap}.modal form>.form-grid{grid-template-columns:1fr 1fr}.modal .form-grid label{font-size:.78rem}.meal-types button{font-size:.76rem;padding:7px}.picker-results{max-height:240px}.recipe-detail-columns{grid-template-columns:1fr;gap:22px}.recipe-detail-image{max-height:180px;aspect-ratio:16 / 9}.shopping-summary{padding:0 0 10px}.grocery-category h2{font-size:1rem;padding:10px 12px}.notice{font-size:.79rem}}.dish-image.book-page-photo{object-fit:contain;background:#fff}.recipe-detail-image.book-page-photo{object-fit:contain;height:auto;max-height:560px;width:100%;background:#fff}.recipe-detail-toolbar{display:flex;justify-content:flex-end;margin:0 0 12px}.scaling-badge{display:inline-flex;width:fit-content;align-items:center;white-space:nowrap;border:1px solid #c4d3c4;border-radius:4px;background:#eef4eb;color:#34583d;padding:2px 5px;font-size:.7rem;font-weight:600;line-height:1.25;vertical-align:middle}.meal-button .scaling-badge,.lunch-slot .scaling-badge{margin-left:5px}.picker-recipe .scaling-badge{margin-top:4px}.recipe-scaling-controls,.meal-scaling-summary{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.recipe-scaling-controls{margin:16px 0 6px}.recipe-scaling-controls label{display:flex;align-items:center;gap:8px}.recipe-scaling-controls input{width:76px;min-height:42px}.meal-scaling-summary{margin-top:10px}.scaling-instruction-note{padding:9px 12px;border-left:3px solid #bb974b;background:#fff9eb;font-size:.82rem;line-height:1.5}.scaling-review{display:block;color:#785719;font-size:.75rem}.planned-recipe-link{display:flex;align-items:center;justify-content:center;gap:6px;min-height:40px;width:100%;color:var(--green);font-size:.8rem}.recipe-update-choice{display:flex;gap:10px;align-items:flex-start;padding:12px;background:#f2f6f1;border-radius:6px}.recipe-update-choice input{width:20px;min-width:20px;height:20px;margin:2px 0 0}.recipe-update-choice small{display:block;margin-top:6px;color:var(--muted);line-height:1.5}.website-toolbar,.website-pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:12px 0;flex-wrap:wrap}.website-toolbar label{display:flex;align-items:center;gap:8px}.website-toolbar select{max-width:245px;min-height:42px}.website-results{border-top:1px solid var(--line)}.website-result{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}.website-result>div{min-width:0}.website-result a{font-weight:600;color:var(--green);overflow-wrap:anywhere}.website-result small{display:block;color:var(--muted);margin-top:4px}.website-result .text-button{padding:5px 0;font-size:.8rem}.website-result>button{flex-shrink:0}.website-about{margin:8px 0 12px}.website-about summary{cursor:pointer}
