@import "https://fonts.googleapis.com/css2?family=Assistant:wght@400;500;600;700;800&family=Frank+Ruhl+Libre:wght@400;500;600;700;800&display=swap";:root{color:#30372b;font-synthesis:none;--olive:#4d5e3a;--olive-dark:#34442b;--muted:#7c8073;--line:#e5e5d9;--paper:#f8f7f2;--serif:"Frank Ruhl Libre",Georgia,serif;background:#f8f7f2;font-family:Assistant,Arial,sans-serif}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{opacity:.48;cursor:not-allowed}button{color:inherit;background:0 0;border:0}a{color:var(--olive);text-decoration:none}a:hover{text-decoration:underline}button:focus-visible,a:focus-visible{outline-offset:4px;outline:3px solid #acbc72}input,textarea,select{color:#30372b;background:#fff;border:1px solid #dcded1;border-radius:9px;outline:0;width:100%;min-height:45px;padding:12px 14px;transition:all .2s}input:focus,textarea:focus,select:focus{border-color:#7b8b60;box-shadow:0 0 0 3px #83956517}textarea{resize:vertical;line-height:1.7}input::placeholder,textarea::placeholder{color:#9c9e94;font-weight:400}label{flex-direction:column;gap:8px;font-size:14px;font-weight:600;display:flex}p{line-height:1.7}h1,h2,h3,p{margin-top:0}h1,h2,h3{color:#30392b}h1,h2{font-family:var(--serif);font-weight:600}h1{font-size:48px;line-height:1.14}h2{font-size:30px}h3{font-size:20px}svg{stroke-width:1.65px;flex-shrink:0}button svg,a svg{vertical-align:middle}.primary,.secondary,.text-button{white-space:nowrap;justify-content:center;align-items:center;gap:9px;font-weight:600;display:inline-flex}.primary{background:var(--olive);color:#fff;border:1px solid var(--olive);border-radius:8px;padding:13px 22px;transition:background .2s,transform .2s;box-shadow:0 3px 7px #24341e0c}.primary:hover{background:var(--olive-dark);transform:translateY(-1px)}.secondary{background:#fffdf8;border:1px solid #dedfd2;border-radius:8px;padding:12px 18px}.secondary:hover{background:#f0f2e8;border-color:#8d9b76}.text-button{color:var(--olive);padding:10px 3px;font-size:14px}.text-button:hover{text-decoration:underline}.icon-button{border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;display:inline-flex}.icon-button:hover{background:#e9ecdf}.full{width:100%}.compact{padding:10px 16px}.row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.quiet{color:var(--muted);font-size:13px;font-weight:400}.eyebrow{letter-spacing:.7px;color:#777d60;margin-bottom:12px;font-size:12px;font-weight:700;display:block}.brand{align-items:center;gap:10px;display:flex}.brand b{letter-spacing:-.6px;color:#38472e;font-family:Georgia,serif;font-size:23px;font-weight:500;display:block}.brand small{color:#7c826f;margin-top:4px;font-size:11px;display:block}.brand-mark{color:var(--olive);place-items:center;width:44px;height:48px;display:grid;position:relative}.brand-leaf{position:absolute;top:1px;left:5px;transform:rotate(-35deg)}.brand.small b{font-size:20px}.brand.small small{font-size:10px}.app-shell{min-height:100vh}.sidebar{z-index:30;background:#f1f2e9;border-left:1px solid #e5e7db;flex-direction:column;width:242px;padding:33px 22px 20px;display:flex;position:fixed;inset:0 0 0 auto}.sidebar-rule{background:#dce0cf;height:1px;margin:32px 4px 28px}.sidebar-label{color:#929582;margin:0 15px 14px;font-size:11px}.sidebar nav{flex-direction:column;gap:7px;display:flex}.sidebar nav button,.sidebar-bottom>button{text-align:right;color:#727967;border-radius:7px;align-items:center;gap:13px;padding:14px 15px;font-size:14px;font-weight:600;transition:all .2s;display:flex}.sidebar nav button:hover{background:#e7ebdc}.sidebar nav button.active{color:#fff;background:#4d5e3a;box-shadow:0 4px 9px #3d4e2015}.sidebar nav button small{background:#ffffff24;border-radius:50%;margin-right:auto;padding:1px 6px;font-size:11px}.sidebar-memory{text-align:center;color:#9aa380;margin:auto 8px 24px;padding:42px 12px 10px}.sidebar-memory p{font-family:var(--serif);color:#8b917c;margin-top:12px;font-size:16px;line-height:1.85}.sidebar-memory b{font-weight:500}.sidebar-memory>span{color:#b3ba9e;font-size:22px}.sidebar-bottom{margin-top:auto}.sidebar-bottom>button{width:100%;margin-bottom:16px;font-size:13px}.sidebar-bottom>button.active{background:#e1e7d3}.user-row{border-top:1px solid #dce0cf;align-items:center;gap:11px;padding:19px 0 0;display:flex}.avatar{color:#6a7950;background:#e0e5cf;border:1px solid #d6ddc5;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:37px;height:37px;font-weight:700;display:inline-flex}.user-row b{font-size:13px}.user-row small{color:#969b88;margin-top:2px;font-size:10px;display:block}.user-row button{color:#7f8772;margin-right:auto}.app-content{margin-right:242px}.topbar{background:#fcfbf7;border-bottom:1px solid #e9e9e0;justify-content:space-between;align-items:center;height:86px;padding:0 43px;display:flex}.breadcrumb{color:#777d6c;font-size:12px}.breadcrumb span{color:#bbbfae;padding:0 11px}.top-actions{align-items:center;gap:25px;display:flex}.private-label{color:#8a907d;align-items:center;gap:7px;font-size:11px;display:flex}.private-label>span{background:#89996a;border-radius:50%;width:5px;height:5px}.main-content{max-width:1450px;min-height:calc(100vh - 145px);margin:auto;padding:35px 43px 20px}.mobile-brand,.mobile-nav{display:none}.home-hero{background:#efefe4;border:1px solid #e7e8da;border-radius:12px;grid-template-columns:1fr 47%;min-height:342px;margin-bottom:44px;display:grid;position:relative;overflow:hidden}.hero-copy{padding:33px 35px 26px}.hero-copy .eyebrow{align-items:center;gap:7px;font-size:11px;display:flex}.hero-copy .eyebrow>span{background:#b2a070;border-radius:50%;width:5px;height:5px}.hero-copy h1{letter-spacing:-.7px;margin-bottom:16px;font-size:44px;font-weight:500;line-height:1.15}.hero-copy h1 em{color:#718251;font-style:normal}.hero-copy p{color:#838774;margin-bottom:18px;font-size:14px;line-height:1.8}.hero-link{color:#4f6338;border-bottom:1px solid #b5bea1;align-items:center;gap:12px;padding:0 0 7px;font-size:13px;font-weight:700;display:flex}.hero-footnote{color:#939781;align-items:center;gap:10px;margin-top:23px;font-size:10px;display:flex}.mini-avatars{padding-right:5px;display:flex}.mini-avatars>span{color:#7a865c;background:#d9e0c9;border:2px solid #f2f3e8;border-radius:50%;place-items:center;width:25px;height:25px;margin-right:-5px;display:grid}.hero-photo{min-height:100%;position:relative;overflow:hidden}.hero-photo img{object-fit:cover;filter:saturate(.82);object-position:48% 50%;width:100%;height:100%;position:absolute;inset:0}.hero-photo:after{content:"";background:linear-gradient(270deg,#efefe414,#0000);position:absolute;inset:0}.photo-sticker{width:112px;height:112px;font-family:var(--serif);color:#75764e;z-index:2;background:#fcf8e6ee;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;font-size:17px;line-height:1.15;display:flex;position:absolute;bottom:27px;left:25px;transform:rotate(-12deg);box-shadow:0 2px 8px #322a1920}.photo-sticker b{font-size:28px;font-weight:500}.photo-sticker svg{margin-top:7px;transform:rotate(30deg)}.section-heading{justify-content:space-between;align-items:center;gap:20px;margin-bottom:22px;display:flex}.section-heading h2{align-items:center;gap:12px;margin:0;font-size:27px;display:flex}.section-heading h2 small{color:#80896c;background:#f1f2e8;border:1px solid #dedfd1;border-radius:20px;padding:3px 9px;font:500 12px Assistant}.section-heading .eyebrow{margin-bottom:7px;font-size:10px}.section-heading>span{color:#8c927e;font-size:12px}.search-field{border:1px solid var(--line);color:#a2a692;background:#fff;border-radius:7px;align-items:center;gap:10px;width:320px;max-width:45%;padding:0 13px;display:flex}.search-field input{box-shadow:none;background:0 0;border:0;min-height:40px;padding:11px 0;font-size:12px}.search-field button{color:#929b81;font-size:20px}.category-tabs{scrollbar-width:none;gap:8px;margin-bottom:26px;padding-bottom:3px;display:flex;overflow:auto}.category-tabs button{white-space:nowrap;color:#7b836c;background:#fffdf8;border:1px solid #e2e4d6;border-radius:24px;padding:8px 17px;font-size:12px;transition:all .2s}.category-tabs button.active{color:#50613d;background:#e8eddc;border-color:#b8c3a1;font-weight:700}.recipe-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:23px;display:grid}.recipe-card{background:#fffefa;border:1px solid #e7e7dc;border-radius:11px;transition:transform .2s,box-shadow .2s;animation:.45s both appear;position:relative;overflow:hidden}.recipe-card:hover{transform:translateY(-4px);box-shadow:0 8px 28px #4757360c}.card-main{text-align:right;width:100%;padding:0;display:block}.card-photo{background:#e9ecdf;height:192px;position:relative}.card-photo img{object-fit:cover;width:100%;height:100%}.photo-category{color:#6b7957;background:#fffef5ec;border-radius:4px;padding:4px 11px;font-size:10px;position:absolute;bottom:13px;right:13px;box-shadow:0 1px 4px #24341e15}.favorite{z-index:3;color:#858c78;background:#ffffffde;border-radius:50%;place-items:center;width:33px;height:33px;display:grid;position:absolute;top:12px;left:12px;box-shadow:0 1px 5px #0000000a}.favorite.selected,.hearted{color:#b9755b}.card-copy{padding:18px 19px 16px}.card-eyebrow{color:#969c85;margin-bottom:6px;font-size:10px}.card-copy h3{font-family:var(--serif);margin-bottom:8px;font-size:23px;font-weight:500;line-height:1.15}.card-copy p{color:#979b8b;-webkit-line-clamp:2;-webkit-box-orient:vertical;height:34px;margin-bottom:18px;font-size:12px;line-height:1.5;display:-webkit-box;overflow:hidden}.card-meta{color:#9b9f8b;border-top:1px solid #eeeede;align-items:center;gap:15px;padding-top:12px;font-size:11px;display:flex}.card-meta span{align-items:center;gap:5px;display:flex}.card-meta>svg{color:#7c8b65;margin-right:auto}.food-placeholder{color:#9ba883;width:100%;height:100%;font-family:var(--serif);background:radial-gradient(at 25% 30%,#e0e4cc,#0000 65%),#eceee1;flex-direction:column;justify-content:center;align-items:center;gap:12px;font-size:22px;display:flex}.image-missing{background:radial-gradient(at 25% 30%,#e0e4cc,#0000 65%),#eceee1}.empty{text-align:center;background:#f5f5ed;border:1px dashed #d9dfcb;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;min-height:285px;padding:36px 20px;display:flex}.empty-icon{color:#819467;background:#e9eddd;border-radius:50%;place-items:center;width:75px;height:75px;margin-bottom:18px;display:grid}.empty h2{margin-bottom:9px;font-size:28px}.empty p{color:#8c927c;margin-bottom:23px;font-size:14px}.home-bottom{border-top:1px solid var(--line);color:#9ca487;flex-direction:column;align-items:center;margin-top:36px;padding:24px;display:flex}.home-bottom>span{font-size:24px}.home-bottom p{color:#919882;margin:8px 0 10px;font-size:13px}.home-bottom p b{font-weight:600}.home-bottom button{color:#7b8a61;align-items:center;gap:8px;font-size:12px;display:flex}.site-footer{color:#a4aa96;justify-content:center;align-items:center;gap:9px;padding:24px;font-size:10px;display:flex}.page-title{margin:9px 0 33px}.page-title h1{margin-bottom:12px;font-size:44px}.page-title p{color:#8b927f;font-size:15px}.centered{text-align:center}.pantry-panel{background:#eef1e5;border:1px solid #dfe5d1;border-radius:13px;max-width:850px;margin:0 auto 40px;padding:32px}.pantry-panel>svg{color:#849462;margin-bottom:20px}.pantry-panel form>label{font-size:16px}.pantry-panel input{margin-top:3px}.pantry-tags{flex-wrap:wrap;gap:8px;margin:14px 0 22px;display:flex}.pantry-tags button{background:#fffef7;border:1px solid #d5dec2;border-radius:20px;gap:10px;padding:6px 13px;font-size:14px;display:flex}.pantry-tags span{color:#939f7d}.suggested-groceries{flex-wrap:wrap;align-items:center;gap:9px;margin:25px 0 15px;display:flex}.suggested-groceries small{color:#919c7f}.suggested-groceries button{border:1px solid #d7dfca;border-radius:15px;padding:3px 9px;font-size:12px}.match-result{border-top:1px solid var(--line);color:var(--olive);margin-top:15px;padding-top:10px;font-size:12px}.match-result small{color:#90987e;margin-top:5px;font-size:11px;display:block}.modal{color:#30372b;background:#fcfbf7;border:0;border-radius:17px;width:min(540px,100% - 28px);max-height:92dvh;padding:0;box-shadow:0 25px 90px #18220e38}.modal.wide{width:min(850px,100% - 28px)}.modal::backdrop,.recipe-dialog::backdrop{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#1d291980}.modal>header{border-bottom:1px solid var(--line);z-index:8;background:#fcfbf7;justify-content:space-between;align-items:center;padding:18px 27px;display:flex;position:sticky;top:0}.modal>header h2{margin:0;font-size:25px}.modal-actions{justify-content:space-between;align-items:center;gap:15px;padding:22px 0 3px;display:flex}.import-body{padding:25px 30px}.intro{color:#858d76;margin-bottom:25px;font-size:15px}.import-tabs{grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:25px;display:grid}.import-tabs button{border:1px solid var(--line);color:#808970;background:#fff;border-radius:9px;flex-direction:column;align-items:center;gap:9px;padding:20px 8px;font-size:14px;display:flex}.import-tabs button.active{color:#4e6335;background:#edf1e2;border-color:#97a87a}.ai-note{color:#7c8768;background:#f0f1e7;border-radius:8px;align-items:flex-start;gap:11px;margin:17px 0;padding:15px;display:flex}.ai-note svg{margin-top:4px}.ai-note p{margin:0;font-size:13px;line-height:1.7}.ai-note b{font-weight:600}.notice{color:#8a7d51;background:#fff9e8;border:1px solid #e4d8ad;border-radius:8px;padding:16px;font-size:13px;line-height:1.7}.error-box{color:#a24e36;background:#fff0e9;border:1px solid #efd2c3;border-radius:8px;margin:12px 0;padding:13px 17px;font-size:14px;line-height:1.6}.spinner{border:2px solid #dee5cd;border-top-color:var(--olive);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin;display:inline-block}.job-status{text-align:center;color:#84926e;padding:40px 20px}.job-status h3{margin-top:22px}.job-status p{color:#8b947c;font-size:14px}.job-status .text-button{margin:0 15px}.recent-imports{border-top:1px solid var(--line);margin-top:25px;padding-top:20px}.recent-imports h3{font-size:16px}.recent-imports button{border-bottom:1px solid var(--line);text-align:right;justify-content:space-between;align-items:center;width:100%;padding:13px 4px;display:flex}.recent-imports b{font-size:14px;display:block}.recent-imports small{color:#939b84;font-size:12px}.recipe-editor{padding:25px 30px}.recipe-editor>label{margin:18px 0}.form-grid{grid-template-columns:1.3fr 1fr 1fr 1fr;gap:12px;margin:22px 0;display:grid}.draft-banner{color:#607347;background:#edf2e1;border-radius:10px;align-items:center;gap:15px;margin-bottom:20px;padding:18px;display:flex}.draft-banner b{font-size:16px}.draft-banner p{margin:5px 0 0;font-size:12px}.review-alert{color:#8a7848;background:#fff8e5;border:1px solid #eee0b8;border-radius:9px;margin:20px 0;padding:18px;font-size:13px}.review-alert ul{margin-bottom:0;padding-right:20px;line-height:1.8}.image-picker{border:1px solid var(--line);border-radius:10px;grid-template-columns:220px 1fr;margin:25px 0;display:grid;overflow:hidden}.editor-cover{background:#edf0e3;min-height:220px;position:relative}.editor-cover>img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.editor-cover>.icon-button{background:#fffc;position:absolute;top:10px;left:10px}.image-picker-body{padding:20px}.image-picker h3{font-size:18px}.image-picker .secondary,.image-picker .text-button{padding:9px;font-size:12px}.image-search{gap:7px;margin:13px 0;display:flex}.image-search input{min-width:0;min-height:38px;font-size:12px}.image-results{flex-wrap:wrap;gap:7px;margin:10px 0;display:flex}.image-results button{width:65px;height:55px;padding:0;position:relative}.image-results img{object-fit:cover;border-radius:5px;width:100%;height:100%}.image-results svg{background:var(--olive);color:#fff;border-radius:50%;margin:auto;position:absolute;inset:0}.image-picker details{color:#939a86;font-size:12px}.file-button{cursor:pointer;flex-direction:row;display:inline-flex}.editor-section-heading{border-bottom:1px solid var(--line);justify-content:space-between;align-items:baseline;margin-top:32px;margin-bottom:18px;padding-bottom:9px;display:flex}.editor-section-heading h3{font-family:var(--serif);margin:0;font-size:25px;font-weight:500}.editor-section-heading span{color:#969d88;font-size:11px}.ingredient-editor,.ingredient-editor-labels{grid-template-columns:1.7fr .7fr .8fr 1.3fr 35px;gap:7px;display:grid;position:relative}.ingredient-editor{margin:10px 0}.ingredient-editor input{min-width:0;padding:10px 8px;font-size:13px}.ingredient-editor-labels{color:#929a82;margin-bottom:8px;font-size:11px}.ingredient-editor.inferred{padding-bottom:20px}.inferred-label{color:#b29351;font-size:10px;position:absolute;bottom:0;right:2px}.step-editor{align-items:flex-start;gap:12px;margin:15px 0;display:flex}.step-editor>span{color:#839864;background:#eaf0dd;border-radius:50%;flex-shrink:0;place-items:center;width:30px;height:30px;margin-top:9px;display:grid}.step-editor>div{flex:1}.step-editor textarea{font-size:14px}.inline-label{color:#929b81;flex-direction:row;align-items:center;gap:10px;margin-top:7px;font-size:11px}.inline-label input{width:75px;min-height:28px;padding:5px 8px;font-size:12px}.step-editor.inferred textarea{border-color:#dcc994}.step-editor small{color:#b29351;font-size:10px}.review-confirm{background:#f1f3e9;border-radius:9px;flex-direction:row;align-items:center;padding:16px;font-size:13px}.review-confirm input{width:18px;height:18px;min-height:0;accent-color:var(--olive)}.sticky-actions{border-top:1px solid var(--line);z-index:6;background:#fcfbf7f5;margin:24px -30px -25px;padding:19px 30px;position:sticky;bottom:0}.danger{color:#a97058}.confirm-body{padding:25px}.toast{z-index:1000;color:#fff;text-align:center;background:#36462d;border-radius:10px;max-width:calc(100% - 30px);padding:14px 24px;font-size:14px;position:fixed;bottom:30px;left:50%;transform:translate(-50%);box-shadow:0 8px 30px #14220e25}.loading-page{flex-direction:column;justify-content:center;align-items:center;gap:35px;min-height:100vh;display:flex}.login-page{direction:ltr;grid-template-columns:1fr 1fr;min-height:100dvh;display:grid}.login-art{background:#3c492f url(/images/family-table.jpg) 50%/cover;min-height:100vh;position:relative}.login-shade{background:linear-gradient(#1d271c0a 10%,#23301a99);position:absolute;inset:0}.login-art-copy{color:#fff;text-align:right;text-shadow:0 1px 14px #17200b20;direction:rtl;position:absolute;bottom:16%;left:12%;right:11%}.login-art-copy .eyebrow{color:#fff3d8;font-size:12px}.login-art-copy h1{color:#fff;margin-bottom:22px;font-size:67px;font-weight:400;line-height:1.1}.login-art-copy h1 em{color:#e4e4c0;font-style:normal}.login-art-copy p{color:#fff9e6d9;font-size:18px;line-height:1.9}.handwritten{font-family:var(--serif);color:#efeac8;font-size:23px}.art-caption{color:#ffffff9c;direction:rtl;font-size:11px;position:absolute;bottom:35px;left:38px}.login-panel{direction:rtl;background:#faf8f1;flex-direction:column;padding:45px 12%;display:flex}.login-panel>.brand{align-self:flex-start}.login-form{align-self:center;width:100%;max-width:390px;margin:auto 0;padding:50px 0}.login-form h2{margin-bottom:20px;font-size:40px;line-height:1.2}.login-form>p{color:#899079;margin-bottom:30px;font-size:15px;line-height:1.9}.login-form label{margin-bottom:20px;font-size:14px}.login-form input{letter-spacing:1px;background:#fffef9;border-radius:8px;min-height:54px;padding:14px 15px;font-size:18px}.login-form .primary{min-height:52px}.login-form>.text-button{white-space:normal;width:100%;margin-top:12px;font-size:12px}.login-form>.login-note{justify-content:center;align-items:center;gap:7px;margin-top:22px;margin-bottom:0;font-size:11px;display:flex}.login-panel footer{text-align:center;color:#a2a88f;font-size:11px}.login-panel footer span{margin-right:12px}.recipe-dialog{color:#30372b;background:#fcfbf7;border:0;border-radius:16px;width:min(1120px,100vw - 32px);max-width:1120px;max-height:94dvh;padding:0;box-shadow:0 25px 90px #18220e38}.recipe-toolbar{z-index:7;border-bottom:1px solid var(--line);background:#fcfbf7f7;justify-content:space-between;align-items:center;padding:12px 25px;display:flex;position:sticky;top:0}.recipe-toolbar>div{gap:4px;display:flex}.recipe-heading{border-bottom:1px solid var(--line);grid-template-columns:1fr 42%;min-height:360px;display:grid}.recipe-heading-copy{padding:40px 37px}.recipe-heading h1{margin-bottom:18px;font-size:43px;line-height:1.15}.recipe-heading p{color:#8a917d;font-size:15px}.recipe-heading-photo{background:#edf0e2;position:relative}.recipe-heading-photo img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.recipe-facts{gap:26px;margin:26px 0 25px;display:flex}.recipe-facts>span{color:#6f8054;grid-template-columns:20px auto;column-gap:8px;font-size:14px;font-weight:600;display:grid}.recipe-facts svg{grid-row:span 2;width:19px;height:19px;margin-top:2px}.recipe-facts small{color:#a2a78f;margin-top:3px;font-size:10px;font-weight:400}.recipe-heading .primary,.recipe-heading .secondary{padding:11px 14px;font-size:13px}.recipe-body{grid-template-columns:32% 1fr;gap:40px;padding:40px 37px 70px;display:grid}.ingredients-panel{background:#f0f2e8;border:1px solid #e2e7d5;border-radius:10px;align-self:start;padding:23px 19px}.ingredients-title{flex-direction:column;gap:16px;display:flex}.ingredients-title h3{font-family:var(--serif);margin:0;font-size:28px;font-weight:500}.servings{background:#fffdf7;border:1px solid #dce2cf;border-radius:20px;align-items:center;gap:8px;width:max-content;padding:3px 5px;font-size:12px;display:inline-flex}.servings button{border-radius:50%;place-items:center;width:25px;height:25px;display:grid}.servings button:hover{background:#e9eedb}.servings span{text-align:center;min-width:60px}.ingredient-list{margin:20px 0;padding:0;list-style:none}.ingredient-list li{border-bottom:1px solid #e1e5d5;padding:12px 0;font-size:14px}.ingredient-list label{cursor:pointer;flex-direction:row;align-items:flex-start;gap:9px;font-size:14px;font-weight:400;line-height:1.6;display:flex}.ingredient-list input{width:16px;height:16px;min-height:0;accent-color:var(--olive);flex-shrink:0;margin-top:3px;padding:0}.ingredient-list b{color:#556642;font-weight:700}.ingredient-note{color:#949d83;font-size:11px;display:block}.ingredient-list .checked{opacity:.48}.ingredient-list .checked>label>span{text-decoration:line-through}.directions>h2{margin:0 0 23px;font-size:32px}.direction{gap:18px;margin-bottom:27px;display:flex}.step-number{font-family:var(--serif);color:#b3bca1;font-size:27px;line-height:1.2}.direction p{color:#6f7863;white-space:pre-line;margin:0 0 10px;font-size:16px;line-height:1.85}.timer{color:#6f8352;background:#f0f3e8;border:1px solid #dce3cf;border-radius:22px;align-items:center;gap:10px;min-height:36px;padding:7px 12px;font-size:13px;display:inline-flex}.timer span{font-variant-numeric:tabular-nums;min-width:34px}.timer button{place-items:center;padding:2px;display:grid}.recipe-notes{color:#8d805b;background:#f7f1e2;border-radius:9px;margin-top:32px;padding:20px}.recipe-notes h3{font-family:var(--serif);color:#837750;margin-bottom:10px;font-size:23px}.recipe-notes p{margin-bottom:6px;font-size:14px}.family-story{font-family:var(--serif);color:#8a9478;border-right:2px solid #b9c2a2;margin:30px 0;padding-right:20px;font-size:24px;line-height:1.6}.family-story small{color:#a4ab97;margin-top:15px;font:12px Assistant;display:block}.recipe-provenance{border-top:1px solid var(--line);color:#a0a692;flex-wrap:wrap;gap:15px;margin-top:30px;padding-top:20px;font-size:11px;display:flex}.recipe-provenance a{gap:5px;display:inline-flex}.review-details{color:#929b83;margin-top:20px;font-size:12px;line-height:1.8}.floating-basket{color:#fff;z-index:8;background:#4f6239;border:1px solid #6e8057;border-radius:35px;align-items:center;gap:10px;padding:13px 18px;display:flex;position:fixed;bottom:5vh;left:max(30px,50vw - 520px);box-shadow:0 5px 25px #2c3e2033}.floating-basket small{background:#ffffff25;border-radius:12px;padding:3px 7px;font-size:10px}.basket-content{padding:25px}.enabled{color:#55743a;background:#e6edda;border-color:#9aae7e}.cooking-content{max-width:820px;min-height:70vh;margin:auto;padding:35px 35px 95px}.cooking-top{justify-content:space-between;align-items:center;display:flex}.cooking-top .eyebrow{margin:0}.step-progress{gap:6px;margin:28px 0 45px;display:flex}.step-progress button{background:#e4e8db;border-radius:4px;flex:1;height:5px;padding:0}.step-progress button.done{background:#899d69}.cooking-counter{color:#96a382;font-size:13px}.cooking-content h2{font-family:var(--serif);white-space:pre-line;margin:18px 0 35px;font-size:37px;font-weight:500;line-height:1.7}.cooking-content .timer{margin-bottom:30px;padding:14px 23px;font-size:20px}.cooking-controls{justify-content:space-between;margin-top:30px;display:flex}.cooking-bottom{text-align:center;margin-top:45px}.cooking-bottom .quiet{margin:15px 0;font-size:11px}.admin-stats{grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:28px;display:grid}.admin-stats>div{border:1px solid var(--line);background:#f1f3e8;border-radius:10px;grid-template-columns:40px auto;gap:5px 16px;padding:24px;display:grid}.admin-stats svg{color:#95a47a;grid-row:span 2;align-self:center}.admin-stats b{font-family:var(--serif);font-size:32px;font-weight:500}.admin-stats span{color:#939c82;font-size:12px}.admin-card{border:1px solid var(--line);background:#fffefa;border-radius:11px;margin-bottom:25px;padding:27px}.admin-card p{color:#929b82;font-size:14px}.admin-card h2{font-size:26px}.add-user-form{background:#f3f5ec;border-radius:10px;grid-template-columns:1fr 1.1fr .8fr auto;align-items:end;gap:13px;padding:20px;display:grid}.add-user-form .primary{min-height:45px;padding:12px 15px;font-size:13px}.user-list{margin-top:20px}.admin-user{border-bottom:1px solid var(--line);align-items:center;gap:13px;padding:17px 4px;display:flex}.admin-user>div{flex:1}.admin-user b{font-size:14px}.admin-user small{color:#9da58e;text-align:right;font-size:12px;display:block}.admin-user select{background:0 0;width:120px;min-height:34px;padding:8px;font-size:12px}.status-pill{color:#ad8a68;background:#f9f1e9;border:1px solid #e5d6c6;border-radius:20px;padding:6px 10px;font-size:11px}.status-pill.active{color:#7f9462;background:#edf2e3;border-color:#d7e2c4}.two-columns{grid-template-columns:1.5fr 1fr;gap:20px;margin:20px 0;display:grid}.two-columns small{color:#a0a892;font-size:11px;font-weight:400}.admin-optional{background:#f5f5ed;border-radius:9px;margin:25px 0;padding:18px}.admin-optional summary{color:#7b8c64;cursor:pointer;font-size:14px}.admin-optional a{gap:6px;margin-top:10px;font-size:12px;display:flex}.connected-label{color:#7c9460!important}.export-card{justify-content:space-between;align-items:center;gap:25px;display:flex}.export-card h2{margin-bottom:8px}.export-card p{margin-bottom:0}.export-card .secondary{flex-shrink:0;font-size:13px}.book-main{max-width:1300px}.book-title{justify-content:space-between;align-items:center;margin:5px 0 20px;display:flex}.book-title h1{margin-bottom:10px;font-size:42px}.book-title p{color:#949c84;font-size:14px}.book-title .secondary{font-size:12px}.book-stage{background:radial-gradient(#ded8c4 0,#0000 70%);min-height:480px;padding:30px 15px;position:relative}.flipbook{margin:0 auto;box-shadow:0 12px 30px #3b37221a}.book-page{overflow:hidden}.paper-page{color:#50543e;background:#fffbed linear-gradient(90deg,#dfd6bc38,#0000 8% 92%,#c8bd9d40);border:1px solid #ded7c0}.hard-cover{color:#e6dfbe;background-color:#4c5c3a;background-image:repeating-linear-gradient(45deg,#ffffff03 0 1px,#0000 1px 4px);border:1px solid #38472a;box-shadow:inset 5px 0 10px #111c0a38}.cover-inner{text-align:center;border:1px solid #a5af7959;flex-direction:column;align-items:center;padding:30px 15px;display:flex;position:absolute;inset:26px}.cover-top{letter-spacing:3px;color:#c9d0a7;margin-bottom:auto;font:11px Georgia}.cover-inner>svg{color:#b7c08a;margin:20px 0 30px}.cover-inner h2{font-family:var(--serif);color:#ece6c9;margin:0 0 23px;font-size:52px;font-weight:400;line-height:1.12}.cover-rule{background:#a4af795c;width:60px;height:1px;margin-bottom:22px}.cover-inner p{color:#c0c8a2;font-size:15px;line-height:1.8}.cover-edition{color:#b9c29b;letter-spacing:1px;margin-top:auto;font-size:10px}.paper-inner{flex-direction:column;display:flex;position:absolute;inset:25px 27px 22px}.page-running-head{color:#a8a48b;letter-spacing:.5px;border-bottom:1px solid #e7dfc9;justify-content:space-between;margin-bottom:20px;padding-bottom:10px;font-size:9px;display:flex}.book-photo{border-radius:2px;height:42%;min-height:120px;margin-bottom:22px;overflow:hidden}.book-photo img{object-fit:cover;width:100%;height:100%}.paper-inner>.eyebrow{color:#a2a083;margin-bottom:10px;font-size:9px}.paper-inner h2{margin-bottom:15px;font-size:34px;font-weight:500;line-height:1.1}.book-desc{font-family:var(--serif);color:#8d9075;-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:0 0 15px;font-size:17px;line-height:1.5;display:-webkit-box;overflow:hidden}.book-author{color:#9ba080;font-size:11px}.book-mini-meta{color:#a5aa8d;gap:12px;margin-top:15px;font-size:10px;display:flex}.paper-inner>.text-button{align-self:flex-start;margin-top:9px;font-size:11px}.page-number{color:#b0ae92;border-top:1px solid #e5dfc8;justify-content:space-between;align-items:center;margin-top:auto;padding-top:10px;font-size:10px;display:flex}.paper-inner>h3{font-family:var(--serif);margin-bottom:12px;font-size:26px;font-weight:500;line-height:1.1}.book-section-label{color:#8f9975;margin-bottom:20px;font-size:11px}.book-ingredients{margin:0;padding:0;list-style:none}.book-ingredients li{border-bottom:1px dotted #dad7bd;justify-content:space-between;align-items:flex-start;gap:15px;padding:11px 0;font-size:14px;display:flex}.book-ingredients small{color:#a1a58a;margin-top:3px;font-size:10px;display:block}.book-ingredients b{white-space:nowrap;color:#7c8861;font-size:12px;font-weight:600}.book-steps{margin:0;padding:0;list-style:none}.book-steps li{gap:12px;margin-bottom:16px;display:flex}.book-steps b{font-family:var(--serif);color:#acb18d;font-size:21px;font-weight:400;line-height:1.3}.book-steps p{color:#7f856a;margin:0;font-size:14px;line-height:1.8}.book-blank{color:#b1b598;flex-direction:column;justify-content:center;align-items:center;height:100%;display:flex}.book-blank p{font-family:var(--serif);margin-top:20px;font-size:20px}.book-controls{justify-content:center;align-items:center;gap:25px;margin:20px 0 15px;display:flex}.book-controls>span{color:#929b82;text-align:center;min-width:100px;font-size:12px}.book-controls button{padding:9px 16px;font-size:12px}.book-hint{text-align:center;color:#a3a98f;font-size:11px}.book-toc{border:1px solid var(--line);background:#eff1e5;border-radius:10px;grid-template-columns:1fr 1fr;gap:5px 20px;margin-bottom:15px;padding:15px;display:grid}.book-toc button{text-align:right;border-bottom:1px solid #dce1ce;align-items:center;gap:13px;padding:12px;font-size:14px;display:flex}.book-toc button span{font-family:var(--serif);color:#a3b087}.book-toc button small{color:#a1ab8f;margin-right:auto;font-size:11px}@keyframes spin{to{transform:rotate(360deg)}}@keyframes appear{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (width>=1600px){.main-content{padding-top:45px}.home-hero{min-height:390px}.hero-copy{padding:45px}.hero-copy h1{font-size:53px}.card-photo{height:230px}}@media (width<=1200px){.sidebar{width:215px;padding:30px 16px 20px}.brand b{font-size:21px}.app-content{margin-right:215px}.main-content{padding:28px}.topbar{padding:0 28px}.hero-copy{padding:27px}.hero-copy h1{font-size:38px}.home-hero{grid-template-columns:55% 45%;min-height:325px}.recipe-grid{gap:15px}.card-photo{height:165px}.card-copy{padding:15px}.card-copy h3{font-size:21px}.card-meta{gap:10px}.add-user-form{grid-template-columns:1fr 1fr}.recipe-body{gap:25px}.book-stage{padding:25px 0}.book-photo{margin-bottom:15px}.paper-inner h2{font-size:29px}.book-steps p{font-size:12px}.paper-inner{inset:21px}.book-desc{font-size:15px}.book-ingredients li{padding:9px 0;font-size:12px}.cover-inner h2{font-size:44px}.cover-inner>svg{height:45px;margin:10px 0 25px}}@media (width<=960px){.sidebar{display:none}.app-content{margin-right:0}.mobile-brand{display:block}.breadcrumb{display:none}.topbar{height:76px;padding:0 24px}.main-content{max-width:900px;padding:25px}.mobile-nav{padding:8px 10px max(9px,env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:25;background:#fcfcf7f7;border-top:1px solid #e1e5d5;justify-content:space-around;display:flex;position:fixed;bottom:0;left:0;right:0}.mobile-nav button{color:#939e81;flex-direction:column;align-items:center;gap:4px;min-width:55px;padding:4px;font-size:10px;display:flex}.mobile-nav button.active{color:#4d6536}.site-footer{padding-bottom:95px}.hero-copy h1{font-size:42px}.hero-copy{padding:32px}.toast{bottom:90px}.login-panel{padding:35px 9%}.login-art-copy h1{font-size:54px}.login-form h2{font-size:34px}.login-art-copy{left:10%;right:10%}.recipe-heading{grid-template-columns:1fr 37%}.recipe-heading h1{font-size:35px}.recipe-heading-copy{padding:30px}.recipe-body{padding:30px 25px 80px}.recipe-heading .row{gap:7px}.recipe-heading .secondary{font-size:12px}.recipe-facts{gap:17px}.floating-basket{bottom:35px;left:35px}.book-stage{max-width:850px;margin:auto}.cover-inner h2{font-size:43px}}@media (width<=650px){h1{font-size:36px}.topbar{height:72px;padding:0 17px}.top-actions{gap:8px}.private-label{display:none}.top-actions .primary{padding:9px 12px;font-size:12px}.brand.small b{font-size:19px}.brand.small .brand-mark{width:32px}.main-content{padding:20px 17px}.home-hero{border-radius:11px;flex-direction:column-reverse;min-height:auto;margin-bottom:32px;display:flex}.hero-photo{height:205px;min-height:205px}.hero-photo img{object-position:center 53%}.hero-photo:after{background:linear-gradient(#0000,#efefe400)}.photo-sticker{width:85px;height:85px;font-size:13px;bottom:15px;left:20px}.photo-sticker b{font-size:23px}.photo-sticker svg{height:18px;margin-top:4px}.hero-copy{padding:26px 25px 24px}.hero-copy h1{margin-bottom:13px;font-size:37px}.hero-copy .eyebrow{font-size:10px}.hero-copy p{margin-bottom:15px;font-size:13px}.hero-footnote{margin-top:19px}.hero-link{font-size:12px}.section-heading{flex-wrap:wrap;gap:17px;margin-bottom:19px}.section-heading>div:first-child{width:100%}.section-heading h2{font-size:26px}.search-field{background:#fffefa;width:100%;max-width:none}.search-field input{min-height:44px;font-size:13px}.category-tabs{gap:7px;margin-bottom:20px;margin-left:-17px}.category-tabs button{padding:8px 16px;font-size:12px}.recipe-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.card-photo{height:145px}.card-copy{padding:13px 12px}.card-eyebrow{font-size:9px}.card-copy h3{min-height:48px;margin-bottom:6px;font-size:20px;line-height:1.2}.card-copy p{margin-bottom:13px;font-size:11px}.card-meta{flex-wrap:wrap;gap:6px;padding-top:10px;font-size:10px}.card-meta svg{width:12px}.card-meta>svg{display:none}.favorite{width:28px;height:28px;top:8px;left:8px}.favorite svg{width:16px}.photo-category{padding:3px 8px;font-size:9px;bottom:8px;right:8px}.home-bottom{padding:20px 3px}.home-bottom p{text-align:center;max-width:280px;font-size:12px}.page-title h1{font-size:36px}.page-title{margin-top:15px}.page-title p{font-size:14px}.pantry-panel{padding:24px 20px}.pantry-panel .row{justify-content:space-between;gap:6px}.pantry-panel .primary,.pantry-panel .secondary{padding:12px 13px;font-size:12px}.pantry-panel form>label{font-size:14px}.match-result{font-size:11px}.match-result small{font-size:10px}.modal{border-radius:12px;width:calc(100% - 18px);max-height:94dvh}.modal.wide{width:calc(100% - 18px)}.modal>header{padding:14px 18px}.modal>header h2{font-size:23px}.import-body{padding:22px 18px}.intro{font-size:13px}.import-tabs{gap:7px}.import-tabs button{padding:16px 5px;font-size:12px}.import-tabs svg{width:20px}.import-body .modal-actions{align-items:center;gap:8px}.modal-actions .primary{padding:12px 13px;font-size:12px}.modal-actions .text-button{white-space:normal;font-size:11px}.recipe-editor{padding:20px 18px}.form-grid{grid-template-columns:1fr 1fr}.ingredient-editor{grid-template-columns:1.5fr .75fr .75fr 28px;gap:5px;margin-bottom:17px}.ingredient-editor input{font-size:12px}.ingredient-editor input:nth-child(4){grid-area:2/1/auto/4;min-height:32px;font-size:11px}.ingredient-editor>button{grid-area:1/4}.ingredient-editor-labels{grid-template-columns:1.5fr .75fr .75fr 28px;gap:5px}.ingredient-editor-labels>span:last-child{display:none}.ingredient-editor.inferred{padding-bottom:16px}.image-picker{grid-template-columns:1fr}.editor-cover{min-height:190px;max-height:190px}.image-picker-body{padding:17px}.editor-section-heading span{font-size:10px}.editor-section-heading h3{font-size:24px}.sticky-actions{margin:25px -18px -20px;padding:16px 18px}.draft-banner{gap:10px;padding:15px}.draft-banner b{font-size:14px}.draft-banner p{font-size:11px}.step-editor{gap:8px}.step-editor>span{width:25px;height:25px;font-size:12px}.step-editor>button{width:28px}.recipe-dialog{border-radius:0;width:100%;max-width:100%;height:100dvh;max-height:100dvh;margin:0}.recipe-toolbar{padding:10px 14px}.recipe-toolbar .text-button{font-size:12px}.recipe-toolbar .icon-button{width:34px;height:34px}.recipe-heading{flex-direction:column-reverse;display:flex}.recipe-heading-photo{height:235px;min-height:235px}.recipe-heading-copy{padding:27px 23px}.recipe-heading h1{font-size:37px}.recipe-heading p{font-size:14px}.recipe-heading .eyebrow{font-size:11px}.recipe-facts{gap:23px;margin:22px 0}.recipe-facts>span,.recipe-heading .primary{font-size:13px}.recipe-heading .secondary{padding:12px 10px;font-size:11px}.recipe-body{padding:25px 22px 100px;display:block}.ingredients-panel{margin-bottom:35px;padding:22px}.ingredients-title{flex-direction:row;justify-content:space-between;align-items:center}.directions>h2{font-size:30px}.direction{gap:14px}.direction p{font-size:16px}.floating-basket{padding:12px 16px;font-size:13px;bottom:20px;left:20px}.floating-basket svg{width:19px}.cooking-content{padding:25px 23px 100px}.cooking-top{align-items:flex-start;gap:15px}.cooking-top .eyebrow{font-size:11px;line-height:1.7}.cooking-top .text-button{padding:0;font-size:11px}.cooking-content h2{font-size:31px;line-height:1.7}.step-progress{margin:25px 0 40px}.cooking-controls .primary,.cooking-controls .secondary{padding:12px 17px;font-size:13px}.cooking-bottom{margin-top:40px}.login-page{flex-direction:column;min-height:100dvh;display:flex}.login-art{order:2;height:30dvh;min-height:240px;display:none}.login-panel{background:linear-gradient(#faf8f1e0,#faf8f1f5),url(/images/family-table.jpg) 50%/cover;min-height:100dvh;padding:34px 29px 25px}.login-panel>.brand{margin-top:10px}.login-panel .brand b{font-size:25px}.login-form{max-width:400px;padding:65px 0 60px}.login-form h2{font-size:38px}.login-form>p{font-size:15px}.admin-stats{gap:9px;margin-bottom:20px}.admin-stats>div{text-align:center;flex-direction:column;align-items:center;gap:7px;padding:17px 7px;display:flex}.admin-stats svg{width:20px}.admin-stats b{font-size:28px}.admin-stats span{font-size:10px}.admin-card{padding:20px 16px}.admin-card .section-heading{gap:10px}.admin-card h2{font-size:24px}.admin-card .section-heading>span{font-size:11px}.add-user-form{grid-template-columns:1fr;gap:15px;padding:16px}.user-list{margin-top:15px}.admin-user{flex-wrap:wrap;gap:9px;padding:17px 0}.admin-user>.avatar{width:31px;height:31px}.admin-user>div{min-width:110px}.admin-user select{width:95px;font-size:11px}.admin-user .status-pill{margin-right:40px}.two-columns{grid-template-columns:1fr}.export-card{flex-direction:column;align-items:flex-start}.book-title{margin-top:10px;display:block}.book-title h1{font-size:38px}.book-title p{margin-bottom:17px;font-size:13px}.book-title .secondary{padding:10px 14px}.book-stage{min-height:450px;margin:0 -5px;padding:25px 0}.flipbook{max-width:100%}.cover-inner{padding:25px 12px;inset:22px}.cover-inner h2{font-size:46px}.cover-top{font-size:10px}.cover-inner p{font-size:14px}.paper-inner{inset:22px 24px 19px}.paper-inner h2{font-size:31px}.book-photo{height:38%}.book-desc{font-size:16px}.book-steps p{font-size:13px;line-height:1.75}.book-ingredients li{padding:9px 0;font-size:13px}.book-controls{gap:14px}.book-controls>span{min-width:90px;font-size:11px}.book-controls button{padding:9px 13px;font-size:11px}.book-toc{grid-template-columns:1fr}.book-hint{font-size:10px}.toast{padding:13px 17px;font-size:12px}.empty{padding:30px 20px}.empty h2{font-size:26px}.empty p{font-size:13px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}@media print{body *{visibility:hidden}dialog.recipe-dialog,dialog.recipe-dialog *{visibility:visible}.recipe-dialog{box-shadow:none;border-radius:0;width:100%!important;height:auto!important;max-height:none!important;position:absolute!important;inset:0!important;overflow:visible!important}.recipe-toolbar,.floating-basket,.recipe-heading .row,.timer button{display:none!important}.recipe-heading-photo{min-height:200px;height:200px!important}.recipe-body{padding:25px;display:block}.ingredients-panel{break-inside:avoid;margin-bottom:25px}.direction{break-inside:avoid}.recipe-heading-copy{padding:20px}.recipe-dialog::backdrop{background:0 0}dialog.recipe-dialog:before{content:"Family Crumbs";text-align:center;padding:15px;font-family:Georgia;font-size:20px;display:block}}.sidebar .brand b{white-space:nowrap;letter-spacing:-.7px;font-size:20px}.sidebar .brand-mark{width:32px}.sidebar .brand small{font-size:10px}.book-page .paper-inner h2{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.hero-copy p,.card-copy p,.page-title p,.intro{color:#777f69}.source-paste{text-align:right;border:1px solid var(--line);background:#f3f4e9;border-radius:12px;flex-direction:column;gap:18px;max-width:620px;margin:24px auto;padding:24px;display:flex}.source-paste .secondary{white-space:normal;align-self:flex-start}.source-paste p{margin:0}.source-paste .primary{white-space:normal;align-self:flex-end}@media (width<=600px){.source-paste{padding:16px}.source-paste .primary,.source-paste .secondary{width:100%}}
