@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/manrope-cyrillic-ext-wght-normal-C8S-KRRz.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/manrope-cyrillic-wght-normal-Dvxsihut.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/manrope-greek-wght-normal-DL7QRZyv.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/manrope-vietnamese-wght-normal-usUDDRr7.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/manrope-latin-ext-wght-normal-Ch3YOpNY.woff2)format("woff2-variations");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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/manrope-latin-wght-normal-DHIcAJRg.woff2)format("woff2-variations");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}@font-face{font-family:Newsreader Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/newsreader-vietnamese-wght-normal-Czsa-EzN.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Newsreader Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/newsreader-latin-ext-wght-normal-C-3rgBeH.woff2)format("woff2-variations");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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Newsreader Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/newsreader-latin-wght-normal-CCVVNp6i.woff2)format("woff2-variations");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:#20281f;font-synthesis:none;text-rendering:optimizelegibility;--canvas:#f6f3ea;--surface:#fffdf8;--glass:#fffdf8d1;--ink:#20281f;--muted:#62695f;--sage:#5e7658;--sage-strong:#40543c;--sage-soft:#dfe8db;--saffron:#d59a43;--terracotta:#b65f4a;--line:#38483424;--shadow:0 1rem 3rem #2c392817;background:#f6f3ea;font-family:Manrope Variable,sans-serif}*{box-sizing:border-box}html{background:var(--canvas);min-width:20rem}body{min-width:20rem;min-height:100vh;margin:0;overflow-x:clip}button,input,textarea,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}:focus-visible{outline-offset:3px;outline:3px solid #5e76586b}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.app-shell{min-height:100vh}.sidebar{display:none}.mobile-header{border-bottom:1px solid var(--line);background:var(--glass);-webkit-backdrop-filter:blur(1.25rem);backdrop-filter:blur(1.25rem);z-index:20;justify-content:space-between;align-items:center;height:4.5rem;padding:0 1rem;display:flex;position:sticky;top:0}.mobile-header-actions{gap:.45rem;display:flex}.notification-icon{position:relative}.notification-icon b{background:var(--terracotta);color:#fff;border-radius:999px;place-items:center;min-width:1.25rem;height:1.25rem;padding:0 .25rem;font-size:.65rem;display:grid;position:absolute;top:-.35rem;right:-.35rem}.brand{align-items:center;gap:.65rem;font-family:Newsreader Variable,serif;font-size:1.45rem;font-weight:650;display:inline-flex}.brand-mark{background:var(--sage-strong);color:#fff;border-radius:.9rem;place-items:center;width:2.45rem;height:2.45rem;display:grid;transform:rotate(-3deg)}.brand-mark svg{width:1.3rem}.icon-button{border:1px solid var(--line);background:var(--surface);width:2.75rem;height:2.75rem;color:var(--ink);border-radius:.9rem;place-items:center;display:inline-grid}.icon-button svg{width:1.1rem}.main-content{min-width:0}.page{width:min(90rem,100%);margin:0 auto;padding:2rem 1rem 7rem}.eyebrow{color:var(--sage);letter-spacing:.13em;text-transform:uppercase;font-size:.75rem;font-weight:800;line-height:1}h1,h2,h3{text-wrap:balance;font-family:Newsreader Variable,serif}h1{letter-spacing:-.04em;margin:.5rem 0;font-size:clamp(2.35rem,9vw,4.7rem);font-weight:600;line-height:.98}h2{letter-spacing:-.025em;margin:0;font-size:clamp(1.7rem,5vw,2.35rem);line-height:1.05}h3{font-size:1.4rem;line-height:1.1}.page-heading{grid-template-columns:minmax(0,1fr);align-items:start;gap:1rem;margin-bottom:2.5rem;display:grid}.page-heading-copy{justify-items:start;min-width:0;display:grid}.page-heading-kicker{flex-wrap:wrap;align-items:center;gap:.65rem;display:flex}.page-heading-count{background:var(--sage-soft);min-height:1.65rem;color:var(--sage-strong);border-radius:999px;align-items:center;padding:0 .6rem;font-size:.72rem;font-weight:780;display:inline-flex}.page-heading h1{margin:.45rem 0 0;font-size:clamp(2.15rem,4vw,3rem);line-height:1}.page-heading-description-wrap{align-self:center;min-width:0}.page-heading-description{max-width:42rem;color:var(--muted);margin:0;font-size:.9rem;line-height:1.55}.page-heading-action{justify-self:start;width:100%}.page-heading-action>.primary-button{width:100%}.page-heading-actions{flex-wrap:wrap;gap:.5rem;display:flex}.cookbook-detail-page .page-heading-actions .icon-only-button{border-radius:.85rem;width:2.75rem;min-width:2.75rem;min-height:2.75rem;padding:0}.page-intro{color:var(--muted);max-width:42rem;margin:0 0 2rem}.primary-button,.secondary-button{white-space:nowrap;border:1px solid #0000;border-radius:1rem;justify-content:center;align-items:center;gap:.55rem;min-height:3rem;padding:0 1.15rem;font-weight:760;display:inline-flex}.primary-button{background:var(--sage-strong);color:#fff;box-shadow:0 .7rem 1.7rem #40543c2e}.primary-button:hover{background:#354832}.primary-button:disabled{opacity:.58;cursor:wait}.primary-button svg,.secondary-button svg{width:1.1rem}.secondary-button{border-color:var(--line);color:var(--ink);background:0 0}.secondary-button:hover:not(:disabled){background:#dfe8db94;border-color:#40543c47}.secondary-button:active:not(:disabled){background:var(--sage-soft)}.secondary-button:disabled{opacity:.52;cursor:not-allowed}.danger-button,.danger-outline-button{border-radius:1rem;justify-content:center;align-items:center;gap:.5rem;min-height:3rem;padding:0 1.1rem;font-weight:780;display:inline-flex}.danger-button{color:#fff;background:#8e4637;border:1px solid #8e4637}.danger-button:hover:not(:disabled){background:#74382d;border-color:#74382d}.danger-outline-button{color:#8e4637;background:#fff8f4;border:1px solid #8e463759}.danger-outline-button:hover:not(:disabled){background:#f7e8df;border-color:#8e463794}.danger-outline-button:active:not(:disabled){background:#efd9ce}.danger-button:disabled,.danger-outline-button:disabled{opacity:.5;cursor:not-allowed}.danger-button svg,.danger-outline-button svg{width:1.05rem}.welcome{grid-template-columns:minmax(0,1fr);align-items:center;gap:1.25rem;display:grid}.welcome h1{margin-top:.45rem;font-size:clamp(2.15rem,4vw,3rem);line-height:1}.welcome p{color:var(--muted);margin:.8rem 0 0}.desktop-action{display:none}.search-area{z-index:10;margin:2rem 0 3rem;position:relative}.search-area.is-compact{margin-top:0}.search-bar{background:var(--glass);min-height:4.25rem;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(1.2rem);backdrop-filter:blur(1.2rem);border:1px solid #38483429;border-radius:1.35rem;grid-template-columns:minmax(0,1fr);align-items:center;gap:.65rem;padding:.65rem;display:grid}.search-bar>svg{width:1.3rem;color:var(--sage);flex:none;display:none}.search-bar input{min-width:0;color:var(--ink);background:0 0;border:0;outline:0;flex:1;font-size:1rem}.search-bar input::placeholder{color:#848a80;font-size:.9rem}.search-bar button{background:var(--sage);color:#fff;border:0;border-radius:1rem;grid-column:1/-1;width:100%;min-height:3.25rem;padding:0 .9rem;font-size:.82rem;font-weight:780}.search-popover{border:1px solid var(--line);top:calc(100% + .55rem);background:#fffdf8f7;border-radius:1.2rem;max-height:min(38rem,68vh);padding:.75rem;position:absolute;inset-inline:0;overflow-y:auto;box-shadow:0 1.5rem 4rem #2c392829}.search-popover>div:first-child{color:var(--muted);justify-content:space-between;padding:.4rem .55rem .65rem;font-size:.8rem;display:flex}.search-popover>a{border-radius:.9rem;align-items:center;gap:.75rem;padding:.6rem;display:flex}.search-popover>a:hover{background:var(--sage-soft)}.search-popover>a>span:last-child{font-weight:720;display:grid}.search-popover small{color:var(--muted);font-weight:500}.search-popover p{color:var(--muted);padding:.2rem .55rem}.mini-art{border-radius:.75rem;flex:none;width:2.9rem;height:2.9rem}.web-search-state{border-top:1px solid var(--line);color:var(--sage-strong);gap:.65rem;margin-top:.6rem;padding:.75rem;display:flex}.web-search-state>span{display:grid}.web-result{border-top:1px solid var(--line);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.75rem;padding:.7rem .55rem;display:grid}.web-result a{gap:.15rem;min-width:0;display:grid}.web-result small{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.web-result button{border:1px solid var(--line);background:var(--sage-soft);min-height:2.4rem;color:var(--sage-strong);border-radius:.75rem;font-weight:750}.content-section{margin-top:3.5rem}.section-heading{justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:1.25rem;display:flex}.section-heading a{color:var(--sage-strong);white-space:nowrap;gap:.35rem;font-size:.86rem;font-weight:760;display:inline-flex}.cookbook-grid,.recipe-grid,.bookmark-grid{grid-template-columns:1fr;grid-auto-rows:1fr;align-items:stretch;gap:1rem;display:grid}.cookbook-card,.recipe-card,.bookmark-card,.new-tile{border-radius:1.5rem;min-width:0;transition:transform .18s,box-shadow .18s}.cookbook-card:hover,.recipe-card:hover,.bookmark-card:hover,.new-tile:hover{transform:translateY(-.2rem);box-shadow:0 1.3rem 2.8rem #2c39281f}.cookbook-card{border:1px solid var(--line);background:var(--surface);color:#263024;flex-direction:column;height:100%;display:flex;overflow:hidden}.cookbook-card>a{flex-direction:column;flex:1;min-height:0;display:flex}.book-art{aspect-ratio:16/10;place-items:center;display:grid;position:relative}.book-cover-image,.book-cover-collage{width:100%;height:100%;position:absolute;inset:0}.book-cover-image,.book-cover-collage img{object-fit:cover}.book-cover-collage{background:#fff3;gap:.16rem;display:grid;overflow:hidden}.book-cover-collage.count-2,.book-cover-collage.count-3,.book-cover-collage.count-4{grid-template-columns:repeat(2,minmax(0,1fr))}.book-cover-collage.count-3,.book-cover-collage.count-4{grid-template-rows:repeat(2,minmax(0,1fr))}.book-cover-collage.count-3 img:first-child{grid-row:1/3}.book-cover-collage img{width:100%;min-width:0;height:100%;min-height:0}.book-art>.book-cover-placeholder{background:#ffffff57;border:1px solid #2a36281f;border-radius:50%;place-items:center;width:4.5rem;height:4.5rem;font-family:Newsreader Variable,serif;font-size:2rem;display:grid}.book-cover-placeholder.folder-cover-placeholder svg{width:2rem}.sage .book-art{background:#cbd9c6}.apricot .book-art{background:#efd0b2}.wheat .book-art{background:#e7d8af}.saffron .book-art{background:#edd59a}.berry .book-art{background:#e3c4c6}.sea .book-art{background:#c9dcda}.shared-badge{align-items:center;gap:.3rem;padding:.38rem .6rem;position:absolute;top:.8rem;right:.8rem;border-radius:999px!important;width:auto!important;height:auto!important;font:700 .7rem/1 Manrope Variable,sans-serif!important;display:flex!important}.shared-badge svg{width:.8rem}.book-copy{background:var(--surface);flex:1;grid-template-rows:3.1rem auto;align-content:start;min-height:6.4rem;padding:1rem 1.1rem 1.15rem;display:grid}.book-copy h3{-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;display:-webkit-box;overflow:hidden}.book-copy p{color:var(--muted);margin:0;font-size:.83rem}.book-copy,.book-actions{border:0}.book-actions{background:var(--surface);align-items:flex-end;min-height:3.05rem;padding:0 .8rem .8rem;display:flex}.book-actions button{border:1px solid var(--line);min-height:2.25rem;color:var(--sage-strong);cursor:pointer;background:0 0;border-radius:.7rem;align-items:center;gap:.3rem;padding:0 .65rem;font-size:.72rem;font-weight:750;display:inline-flex}.book-actions svg{width:.85rem}.cookbook-card:has(.book-actions) .book-copy{border-radius:0}.new-tile{min-height:12rem;color:var(--sage-strong);background:#fffdf861;border:1px dashed #40543c59;align-content:center;place-items:center;gap:.6rem;font-weight:760;display:grid}.new-tile svg{width:1.3rem}.recipe-card{background:var(--surface);border:1px solid var(--line);overflow:hidden;box-shadow:0 .45rem 1.6rem #2c39280e}.recipe-card>a{flex-direction:column;height:100%;display:flex}.recipe-art{aspect-ratio:16/10;align-items:flex-end;padding:1rem;display:flex;position:relative;overflow:hidden}.recipe-art,.recipe-hero{background-position:50%;background-size:cover}.recipe-art>img,.recipe-hero>img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.recipe-hero>img{z-index:-2}.recipe-art:before,.recipe-hero:before{content:"";background:#ffffff59;border-radius:55% 35% 48% 40%;position:absolute;inset:12% -10% -20% 28%;transform:rotate(-12deg)}.recipe-art:after,.recipe-hero:after{content:"";aspect-ratio:1;background:#ffffff3d;border-radius:50%;width:42%;position:absolute;top:13%;left:9%;box-shadow:inset 0 0 0 1px #ffffff4d}.recipe-art:before,.recipe-art:after{content:none}.recipe-category{z-index:1;-webkit-backdrop-filter:blur(.75rem);backdrop-filter:blur(.75rem);background:#fffdf8c2;border-radius:999px;padding:.35rem .6rem;font-size:.72rem;font-weight:750;position:relative}.airfryer-badge{z-index:2;background:var(--saffron);color:var(--ink);border:1px solid #fffdf89e;border-radius:999px;padding:.35rem .65rem;font-size:.72rem;font-weight:800;position:absolute;bottom:1rem;right:1rem;box-shadow:0 .4rem 1rem #2c392824}.lemon{background:linear-gradient(145deg,#e9d982,#c2d2a5)}.tomato{background:linear-gradient(145deg,#d98a68,#edc59c)}.bread{background:linear-gradient(145deg,#d5ad6e,#eee0bb)}.risotto{background:linear-gradient(145deg,#c66f51,#e7b383)}.recipe-card-badges{z-index:2;gap:.4rem;display:grid;position:absolute;top:.8rem;right:.8rem}.recipe-status-icon{border:1px solid #fffdf8b3;border-radius:50%;place-items:center;width:2.15rem;height:2.15rem;display:grid;box-shadow:0 .45rem 1.15rem #20281f29}.recipe-status-icon svg{width:.95rem}.cookbook-indicator{background:var(--sage-strong);color:#fffdf8}.shared-dot{color:var(--sage-strong);-webkit-backdrop-filter:blur(.75rem);backdrop-filter:blur(.75rem);background:#fffdf8e0}.recipe-copy{flex-direction:column;flex:auto;min-height:16rem;padding:1.1rem 1.1rem 1.2rem;display:flex}.recipe-copy h3{-webkit-line-clamp:2;-webkit-box-orient:vertical;min-height:3.1rem;margin:0;line-height:1.1;display:-webkit-box;overflow:hidden}.recipe-copy>p{min-height:2.55rem;color:var(--muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:.87rem;line-height:1.45;display:-webkit-box;overflow:hidden}.star-rating{align-items:center;gap:.12rem;display:inline-flex}.rating-star{color:#40543c40;flex:none;width:1rem;height:1rem;position:relative}.rating-star svg{stroke-width:1.8px;width:1rem;height:1rem;position:absolute;inset:0}.rating-star-fill{height:100%;color:var(--saffron);position:absolute;inset:0 auto 0 0;overflow:hidden}.rating-star-fill svg{fill:currentColor;width:1rem;max-width:none}.recipe-card-stars{min-width:0;min-height:1.55rem;color:var(--sage-strong);white-space:nowrap;flex-wrap:nowrap;align-items:center;gap:.35rem .5rem;margin-top:0;font-size:.75rem;font-weight:800;display:flex;overflow:hidden}.recipe-card-footer{gap:.65rem;margin-top:auto;padding-top:.85rem;display:grid}.recipe-card-tags,.recipe-tags{flex-wrap:wrap;gap:.35rem;display:flex}.recipe-card-tags{align-content:start;min-height:2rem;overflow:hidden}.recipe-card-tags span,.recipe-tags span{background:var(--sage-soft);color:var(--sage-strong);border-radius:999px;padding:.3rem .55rem;font-size:.68rem;font-weight:760}.recipe-tags{margin:1.25rem 0 1rem}.recipe-meta{color:var(--muted);flex-wrap:wrap;justify-content:flex-start;gap:.45rem .8rem;font-size:.78rem;font-weight:650;display:flex}.recipe-meta span{align-items:center;gap:.3rem;display:inline-flex}.recipe-meta svg{width:.9rem}.filter-row{gap:.45rem;margin:-1rem 0 1.3rem;padding-bottom:.3rem;display:flex;overflow-x:auto}.filter-row button{border:1px solid var(--line);min-height:2.75rem;color:var(--muted);background:0 0;border-radius:999px;flex:none;padding:0 1rem;font-weight:700}.filter-row button.active{background:var(--sage-soft);color:var(--sage-strong);border-color:#0000}.recipe-library-controls{gap:.75rem;margin:-1rem 0 1.3rem;display:grid}.recipe-library-controls .filter-row{margin:0}.recipe-library-controls .sort-control{justify-self:start}.library-toolbar{justify-content:flex-end;margin:-1rem 0 1.3rem;display:flex}.sort-control{color:var(--muted);align-items:center;gap:.65rem;font-size:.82rem;font-weight:750;display:inline-flex}.sort-control select{border:1px solid var(--line);background-color:var(--surface);min-height:2.75rem;color:var(--ink);cursor:pointer;border-radius:.9rem;padding:0 2.25rem 0 .9rem;font-weight:760}.bookmark-page{position:relative}.bookmark-page:before{content:"";z-index:-1;aspect-ratio:1;background:radial-gradient(circle at 35% 30%,#d59a4324,#0000 62%);border-radius:48% 52% 42% 58%;width:min(25rem,52vw);position:absolute;top:2rem;right:5%;transform:rotate(8deg)}.bookmark-card{background:#fffaf0;border:1px solid #53483024;flex-direction:column;min-width:0;height:100%;display:flex;overflow:hidden;box-shadow:0 .8rem 2.4rem #44382514}.bookmark-link{flex-direction:column;flex:1;height:100%;min-height:0;display:flex}.bookmark-art{aspect-ratio:16/9;background:linear-gradient(145deg,#d7cfbd,#ece5d7);position:relative;overflow:hidden}.bookmark-art:after{content:"";pointer-events:none;background:linear-gradient(#14120e05 42%,#14120e5c);position:absolute;inset:0}.bookmark-art img{object-fit:cover;width:100%;height:100%}.youtube-label{z-index:2;color:#fffdf8;letter-spacing:.03em;background:#b94536;border-radius:999px;align-items:center;gap:.35rem;min-height:2rem;padding:.35rem .65rem;font-size:.72rem;font-weight:800;display:inline-flex;position:absolute;bottom:.75rem;left:.8rem;box-shadow:0 .45rem 1.2rem #41181233}.youtube-label svg{fill:currentColor;width:.8rem}.play-mark{z-index:2;color:#a43f32;-webkit-backdrop-filter:blur(.65rem);backdrop-filter:blur(.65rem);background:#fffdf8db;border:1px solid #ffffff9e;border-radius:50%;place-items:center;width:3.35rem;height:3.35rem;display:grid;position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%);box-shadow:0 .9rem 2.4rem #231c1633}.play-mark svg{fill:currentColor;width:1.25rem;margin-left:.12rem}.bookmark-shared{z-index:3;color:var(--sage-strong);-webkit-backdrop-filter:blur(.7rem);backdrop-filter:blur(.7rem);background:#fffdf8e6}.bookmark-copy{flex-direction:column;flex:1;min-height:9rem;padding:1.15rem 1.15rem 1.25rem;display:flex}.bookmark-copy h2{-webkit-line-clamp:2;-webkit-box-orient:vertical;min-height:3.5rem;margin:.55rem 0 .75rem;font-size:1.65rem;display:-webkit-box;overflow:hidden}.bookmark-copy p{color:var(--muted);align-items:center;gap:.35rem;margin:auto 0 0;font-size:.84rem;font-weight:680;display:inline-flex}.bookmark-copy p svg{width:.9rem}.bookmark-folder-badge{z-index:3;background:var(--sage-strong);color:#fffdf8;border:1px solid #fffdf8bf;border-radius:50%;place-items:center;width:2.25rem;height:2.25rem;display:grid;position:absolute;top:.75rem;left:.75rem;box-shadow:0 .45rem 1.15rem #20281f33}.bookmark-folder-badge svg{width:1rem}.bookmark-actions{background:#f6efe099;border-top:1px solid #5348301a;grid-template-columns:repeat(3,minmax(0,1fr));gap:.45rem;min-height:3.75rem;padding:.55rem .7rem .7rem;display:grid}.bookmark-actions button{min-height:2.75rem;color:var(--sage-strong);background:#fffdf8b8;border:1px solid #53483024;border-radius:.85rem;justify-content:center;align-items:center;gap:.4rem;padding:0 .7rem;font-size:.78rem;font-weight:760;display:inline-flex}.bookmark-actions button:hover{background:#fffdf8}.bookmark-actions button:disabled{opacity:.58;cursor:wait}.bookmark-actions svg{width:.95rem}.bookmark-actions .bookmark-delete{color:#8a4b42}.bookmark-empty{text-align:center;background:#fffdf873;border:1px dashed #40543c47;border-radius:1.6rem;align-content:center;place-items:center;gap:1rem;min-height:18rem;padding:2rem;display:grid}.bookmark-empty>span{background:var(--sage-soft);width:4rem;height:4rem;color:var(--sage-strong);border-radius:1.35rem;place-items:center;display:grid;transform:rotate(-4deg)}.bookmark-empty>span svg{width:1.5rem}.bookmark-empty h2{margin:0 0 .45rem}.bookmark-empty p{max-width:38rem;color:var(--muted);margin:0;line-height:1.6}.bookmark-library-section{margin-top:2.5rem}.bookmark-library-section+.bookmark-library-section{margin-top:3.5rem}.bookmark-library-section .section-heading{align-items:end}.bookmark-library-section .section-heading h2{margin-bottom:.25rem}.bookmark-library-section .section-heading p{max-width:48rem;color:var(--muted);margin:0;font-size:.86rem;line-height:1.5}.bookmark-search-empty{padding:2rem 0}.bookmark-folder-picker .mini-art{place-items:center;display:grid}.bookmark-folder-picker .mini-art svg{width:1rem}.bookmark-folder-picker button[aria-pressed=true]{background:var(--sage-soft)}.folder-cover-remove{width:fit-content;margin-top:.65rem}.folder-cover-remove svg{width:1rem}.cookbook-hero .folder-cover-placeholder svg{width:3.5rem}.back-button{min-height:2.75rem;color:var(--sage-strong);background:0 0;border:0;align-items:center;gap:.45rem;margin-bottom:1rem;font-weight:750;display:inline-flex}.back-button svg{width:1.1rem}.recipe-hero{isolation:isolate;border-radius:1.75rem;align-items:flex-end;min-height:30rem;padding:.75rem;display:flex;position:relative;overflow:hidden}.cookbook-hero{background:var(--sage-soft);isolation:isolate;border-radius:1.75rem;align-items:flex-end;min-height:20rem;padding:1.4rem;display:flex;position:relative;overflow:hidden}.cookbook-hero>.book-cover-image,.cookbook-hero>.book-cover-collage{z-index:-2}.cookbook-hero>.book-cover-placeholder{z-index:-1;background:#ffffff4d;border-radius:50%;place-items:center;width:8rem;height:8rem;font-family:Newsreader Variable,serif;font-size:3rem;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.cookbook-hero>.cookbook-hero-copy{-webkit-backdrop-filter:blur(1.2rem);backdrop-filter:blur(1.2rem);background:#fffdf8d6;border-radius:1.25rem;width:min(36rem,100%);padding:1.2rem}.cookbook-hero h1{margin-top:.5rem}.cookbook-hero p,.empty-copy{color:var(--muted)}.cookbook-hero-copy .share-count-button{margin-top:.75rem}.cookbook-detail-cover{aspect-ratio:16/10;width:100%;min-height:0;padding:0;display:block}.cookbook-detail-page .content-section{margin-top:2.5rem}.recipe-hero:before,.recipe-hero:after{content:none}.hero-overlay{-webkit-backdrop-filter:blur(1.15rem);backdrop-filter:blur(1.15rem);background:#fffdf8de;border:1px solid #ffffff80;border-radius:1.15rem;width:calc(100% - 4.5rem);padding:.95rem 1rem;box-shadow:0 .9rem 2.25rem #2c392824}.hero-overlay h1{margin:.35rem 0 .45rem;font-size:clamp(2rem,8vw,2.65rem);line-height:.98}.hero-heading-row{justify-content:space-between;align-items:flex-start;gap:.8rem;min-height:2.7rem;display:flex}.hero-rating-stars{min-width:10rem;color:var(--sage-strong);background:#fffdf8c7;border:1px solid #5e765833;border-radius:.7rem;justify-items:center;gap:.35rem;margin-top:0;padding:.6rem .8rem;display:grid}.hero-rating-stars:hover{background:var(--surface);border-color:#5e76586b}.hero-rating-stars .star-rating{gap:.22rem}.hero-rating-stars .rating-star,.hero-rating-stars .rating-star svg{width:1.15rem;height:1.15rem}.hero-rating-stars .rating-star-fill svg{width:1.15rem}.hero-rating-stars>span:last-child{white-space:nowrap;font-size:.7rem;font-weight:800;line-height:1.2}.hero-overlay>p{max-width:52ch;color:var(--muted);margin:0 0 .8rem;font-size:.9rem;line-height:1.45}.hero-meta{flex-wrap:wrap;gap:.55rem .8rem;font-size:.78rem;font-weight:720;line-height:1.35;display:flex}.hero-meta span{align-items:center;gap:.35rem;display:inline-flex}.hero-meta svg{width:1rem}.hero-status{border-top:1px solid #3848341f;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.45rem;margin-top:.7rem;padding-top:.65rem;display:flex}.hero-status button{border:1px solid var(--line);background:var(--surface);min-height:2.75rem;color:var(--sage-strong);border-radius:.85rem;align-items:center;gap:.4rem;padding:0 .75rem;font-size:.78rem;font-weight:760;display:inline-flex}.hero-status button svg{width:.95rem}.hero-status .hero-rating-action{background:#dfe8db9e;border-color:#0000;border-radius:.7rem;min-height:2.5rem;padding-inline:.9rem}.hero-status .hero-rating-action:hover{background:var(--sage-soft);border-color:#5e76583d}.share-count-button{min-height:2.75rem;color:var(--sage-strong);background:#fffdf8db;border:1px solid #5e76583d;border-radius:.85rem;align-items:center;gap:.4rem;padding:0 .75rem;font-size:.78rem;font-weight:760;display:inline-flex}.share-count-button:hover{background:var(--sage-soft);border-color:#5e765873}.share-count-button svg{width:.95rem}.hero-action-rail{z-index:3;-webkit-backdrop-filter:blur(1.2rem);backdrop-filter:blur(1.2rem);background:#fffdf8b8;border:1px solid #ffffff6b;border-radius:1rem;gap:.45rem;padding:.35rem;display:grid;position:absolute;top:.75rem;right:.75rem;box-shadow:0 .8rem 2rem #2c39281f}.hero-action-rail button,.hero-action-rail a{border:1px solid var(--line);background:var(--surface);width:2.75rem;height:2.75rem;color:var(--sage-strong);border-radius:.8rem;place-items:center;display:grid}.hero-action-rail button:hover,.hero-action-rail a:hover{background:var(--sage-soft);border-color:#5e765859}.hero-action-rail svg{width:1rem}.hero-action-rail .hero-book-desktop{display:none}.recipe-primary-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;margin:.65rem 0 1rem;display:grid}.recipe-primary-actions button{border:1px solid var(--line);background:var(--surface);border-radius:.9rem;justify-content:center;align-items:center;gap:.4rem;min-width:0;min-height:2.75rem;padding:0 .75rem;font-size:.78rem;font-weight:750;display:inline-flex}.recipe-primary-actions svg{width:.95rem}.recipe-primary-actions .cook-now-button{border-color:var(--sage-strong);background:var(--sage-strong);color:#fff;grid-column:1/-1;box-shadow:0 .55rem 1.4rem #40543c2e}.recipe-primary-actions .shopping-add-button{color:#755019;background:#fff8e8;border-color:#d59a437a}.airfryer-settings{background:linear-gradient(135deg,#fff8e8,#fffdf8eb);border:1px solid #d59a4352;border-radius:1.35rem;margin:1rem 0 2rem;padding:1.15rem}.airfryer-settings-heading{align-items:center;gap:.8rem;display:flex}.airfryer-settings-heading>svg{background:var(--saffron);width:2.5rem;height:2.5rem;color:var(--ink);border-radius:.85rem;padding:.55rem}.airfryer-settings-heading h2{margin:.2rem 0 0;font-size:1.55rem}.airfryer-settings dl{grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;margin:1rem 0 0;display:grid}.airfryer-settings dl>div{background:#ffffff9e;border:1px solid #40543c1a;border-radius:.9rem;min-width:0;padding:.8rem}.airfryer-settings dt{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-size:.7rem;font-weight:760}.airfryer-settings dd{color:var(--ink);overflow-wrap:anywhere;margin:.3rem 0 0;font-weight:760}.airfryer-settings .airfryer-shake-note{grid-column:1/-1}.recipe-actions{flex-wrap:wrap;gap:.45rem;margin:.9rem 0 2.5rem;display:flex}.recipe-actions button,.recipe-actions a{border:1px solid var(--line);background:var(--surface);border-radius:.9rem;flex:none;align-items:center;gap:.4rem;min-height:2.75rem;padding:0 .8rem;font-size:.8rem;font-weight:700;display:inline-flex}.recipe-actions svg{width:.95rem}.readonly-note{min-height:2.75rem;color:var(--muted);align-items:center;gap:.4rem;font-size:.82rem;font-weight:700;display:inline-flex}.tips-section,.source-notes-section{border:1px solid var(--line);background:#fffdf8a8;border-radius:1.4rem;margin:1.5rem 0 3rem;padding:1.2rem}.tips-heading h2{margin-top:.45rem}.personal-marker{background:var(--sage-soft);width:fit-content;color:var(--sage-strong);border-radius:.8rem;margin:0;padding:.55rem .75rem;font-size:.82rem;font-weight:760}.rating-summary{color:var(--muted);margin:0;font-weight:680}.rating-list{gap:.55rem;margin:.35rem 0 0;padding:0;list-style:none;display:grid}.rating-list li{border:1px solid var(--line);background:var(--surface);border-radius:.9rem;grid-template-columns:minmax(0,1fr) auto;gap:.2rem .75rem;padding:.75rem;display:grid}.rating-list li span{color:var(--sage-strong);grid-column:1/-1;font-size:.8rem;font-weight:740}.rating-list li small{color:var(--muted);grid-area:1/2;font-size:.72rem}.rating-details-dialog{gap:.8rem;display:grid}.rating-details-overview{align-items:center;gap:.7rem;margin-top:.4rem;display:flex}.rating-details-overview .rating-star,.rating-details-overview .rating-star svg{width:1.35rem;height:1.35rem}.rating-details-overview .rating-star-fill svg{width:1.35rem}.rating-details-overview strong{color:var(--sage-strong);font-size:1.05rem}.tips-section{margin-top:4rem}.source-notes-section{background:#f8efd673;border-color:#ab803e38;gap:1rem;margin-top:3rem;display:grid}.source-notes-section>div{padding-left:2.8rem;position:relative}.source-notes-section h2{margin-top:.4rem}.source-notes-icon{color:#755c2d;background:#efe0b8;border-radius:50%;place-items:center;width:2rem;height:2rem;display:grid;position:absolute;top:0;left:0}.source-notes-icon svg{width:1rem}.source-notes-section ul{gap:.65rem;margin:0;padding-left:1.25rem;display:grid}.source-notes-section li{max-width:72ch;line-height:1.65}.tips-heading{justify-content:space-between;align-items:end;gap:1rem;display:flex}.tips-list{gap:.8rem;margin-top:1.2rem;display:grid}.tip-card{border:1px solid var(--line);background:var(--surface);border-radius:1.1rem;padding:1rem}.tip-card.is-helpful{background:#fbfdf8;border-color:#5e765857}.tip-meta{color:var(--muted);font-size:.74rem;font-weight:720}.tip-card>p{margin:.65rem 0;line-height:1.65}.tip-card>strong{color:var(--sage-strong);align-items:center;gap:.35rem;font-size:.75rem;display:inline-flex}.tip-card>strong svg,.tip-actions svg{width:.9rem}.tip-actions{flex-wrap:wrap;gap:.4rem;margin-top:.8rem;display:flex}.tip-actions button,.danger-text-button{min-height:2.35rem;color:var(--muted);background:#f0eee7;border:0;border-radius:.7rem;align-items:center;gap:.35rem;padding:0 .65rem;font-size:.72rem;font-weight:750;display:inline-flex}.tip-actions .danger-text-button,.danger-text-button{color:#8e4637}.recipe-columns{gap:3rem;display:grid}.recipe-columns h2{margin:.55rem 0 1.2rem}.ingredient-list{margin:0;padding:0;list-style:none}.ingredient-list li{border-bottom:1px solid var(--line)}.ingredient-list li>span{align-items:center;min-height:3.35rem;line-height:1.5;display:flex}.step-list{gap:1.2rem;margin:0;padding:0;list-style:none;display:grid}.step-list li{grid-template-columns:2.7rem 1fr;gap:.9rem;display:grid}.step-list li>span{background:var(--sage-soft);width:2.7rem;height:2.7rem;color:var(--sage-strong);border-radius:50%;place-items:center;font-family:Newsreader Variable,serif;font-weight:700;display:grid}.step-list p{max-width:65ch;margin:.5rem 0 0;line-height:1.7}.cooking-overlay{-webkit-backdrop-filter:blur(.8rem);backdrop-filter:blur(.8rem);background:#1d251b94}.cooking-dialog{z-index:101;width:100%;min-width:20rem;height:100dvh;color:var(--ink);background:radial-gradient(circle at 85% 12%,#d59a432e,#0000 22rem),radial-gradient(circle at 10% 92%,#5e765829,#0000 24rem),#fbf8ef;grid-template-rows:auto auto minmax(0,1fr) auto auto;display:grid;position:fixed;inset:0;overflow:hidden}.cooking-topbar{min-height:4.7rem;padding:calc(.8rem + env(safe-area-inset-top)) 1rem .8rem;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(1rem);backdrop-filter:blur(1rem);z-index:4;background:#fbf8efe6;justify-content:space-between;align-items:center;gap:1rem;display:flex}.cooking-topbar>div{gap:.25rem;min-width:0;display:grid}.cooking-topbar strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.cooking-progress{padding:1rem}.cooking-progress>div{color:var(--muted);justify-content:space-between;gap:1rem;margin-bottom:.45rem;font-size:.8rem;font-weight:760;display:flex}.cooking-progress progress{background:#e5e3d9;border:0;border-radius:999px;width:100%;height:.42rem;display:block;overflow:hidden}.cooking-progress progress::-webkit-progress-bar{background:#e5e3d9}.cooking-progress progress::-webkit-progress-value{background:var(--sage);border-radius:999px}.cooking-progress progress::-moz-progress-bar{background:var(--sage);border-radius:999px}.cooking-step{overscroll-behavior:contain;align-content:start;gap:1rem;width:min(72rem,100%);min-height:0;margin:0 auto;padding:1rem;display:grid;overflow-y:auto}.cooking-instruction{align-content:start;justify-items:start;gap:1rem;min-width:0;padding:.35rem .25rem .5rem;display:grid}.step-label{background:var(--sage-soft);min-height:2.25rem;color:var(--sage-strong);letter-spacing:.04em;text-transform:uppercase;border-radius:999px;align-items:center;padding:0 .75rem;font-size:.78rem;font-weight:800;display:inline-flex}.cooking-instruction>p{letter-spacing:-.025em;overflow-wrap:anywhere;text-wrap:pretty;width:100%;max-width:40ch;margin:0;font-family:Newsreader Variable,serif;line-height:1.22}.cooking-instruction.is-short>p{font-size:clamp(1.8rem,7vw,3rem)}.cooking-instruction.is-medium>p{font-size:clamp(1.65rem,5.6vw,2.35rem)}.cooking-instruction.is-long>p{font-size:clamp(1.45rem,4.8vw,1.9rem);line-height:1.32}.timer-suggestions{flex-wrap:wrap;gap:.6rem;display:flex}.timer-suggestions button{color:#755019;text-align:left;background:#fff5d9;border:1px solid #d59a436b;border-radius:1rem;align-items:center;gap:.5rem;min-height:3rem;padding:.65rem 1rem;font-weight:780;display:inline-flex}.timer-suggestions svg{width:1.05rem}.cooking-step-ingredients{border:1px solid var(--line);background:#fffdf8d6;border-radius:1.25rem;padding:1rem;box-shadow:0 .6rem 2rem #2c39280f}.cooking-ingredients-head{gap:.8rem;display:grid}.cooking-ingredients-head h2{margin-top:.4rem;font-size:1.7rem}.cooking-servings{border:1px solid var(--line);background:var(--surface);border-radius:.9rem;grid-template-columns:2.75rem minmax(7.5rem,auto) 2.75rem;align-items:center;width:fit-content;display:grid;overflow:hidden}.cooking-servings button{background:var(--sage-soft);width:2.75rem;height:2.75rem;color:var(--sage-strong);border:0;place-items:center;display:grid}.cooking-servings button:disabled{opacity:.42;cursor:not-allowed}.cooking-servings output{text-align:center;white-space:nowrap;padding:0 .65rem;font-size:.82rem;font-weight:780}.cooking-servings svg{width:1rem}.cooking-step-ingredients ul{margin:1rem 0 0;padding:0;list-style:none;display:grid}.cooking-step-ingredients li{border-top:1px solid var(--line);align-items:center;min-height:2.8rem;padding:.6rem 0;line-height:1.4;display:flex}.cooking-navigation{padding:.8rem 1rem calc(.8rem + env(safe-area-inset-bottom));border-top:1px solid var(--line);z-index:3;background:#fbf8eff5;grid-template-columns:1fr 1fr;gap:.6rem;display:grid}.cooking-navigation>button{min-height:3.35rem}.cooking-navigation .secondary-button:disabled{opacity:.42;color:var(--muted);cursor:not-allowed;background:#eeece4}.cooking-navigation svg{width:1.15rem}.active-timers{z-index:3;background:#fff7df;border-top:1px solid #d59a434d}.active-timers-summary{color:#755019;text-align:left;background:0 0;border:0;justify-content:space-between;align-items:center;gap:1rem;width:100%;min-height:3.5rem;padding:.55rem 1rem;display:flex}.active-timers-summary>span{align-items:center;gap:.5rem;min-width:0;display:flex}.active-timers-summary>span:last-child{justify-content:flex-end;font-size:.78rem;font-weight:760}.active-timers-summary svg{flex:none;width:1rem}.active-timer-list{gap:.45rem;max-height:min(14rem,32dvh);padding:0 .75rem .75rem;display:grid;overflow-y:auto}.active-timer-list>div{background:#fffdf8e6;border:1px solid #d59a4347;border-radius:1rem;grid-template-columns:minmax(0,1fr) repeat(3,2.75rem);align-items:center;gap:.3rem;min-height:3.25rem;padding:.45rem .5rem .45rem .75rem;display:grid}.active-timer-list>div.is-finished{border-color:var(--terracotta);background:#fff0e9}.active-timer-info{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.65rem;min-width:0;display:grid}.active-timer-context{gap:.12rem;min-width:0;display:grid}.active-timer-context small{-webkit-line-clamp:2;color:var(--muted);-webkit-box-orient:vertical;font-size:.72rem;line-height:1.2;display:-webkit-box;overflow:hidden}.active-timer-context strong{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.84rem;line-height:1.25;display:-webkit-box;overflow:hidden}.active-timer-status{justify-items:end;gap:.05rem;display:grid}.active-timer-list em{color:#8e4637;font-size:.75rem;font-style:normal;font-weight:820}.active-timer-list b{font-variant-numeric:tabular-nums;font-size:1.15rem}.active-timer-list button{color:#755019;background:#f1ead7;border:0;border-radius:.8rem;place-items:center;width:2.75rem;height:2.75rem;display:grid}.active-timers button svg{width:1rem}.resume-cooking,.cooking-finished,.cooking-state{border:1px solid var(--line);width:min(34rem,100% - 2rem);box-shadow:var(--shadow);text-align:center;background:#fffdf8d1;border-radius:1.8rem;justify-items:center;gap:.8rem;margin:auto;padding:clamp(1.5rem,6vw,3rem);display:grid}.resume-cooking>svg{width:2rem;color:var(--sage)}.resume-cooking h2,.cooking-finished h2,.cooking-state h2{font-size:clamp(2rem,8vw,3.5rem)}.resume-cooking p,.cooking-finished p,.cooking-state p{color:var(--muted)}.resume-cooking>div{gap:.6rem;width:100%;display:grid}.cooking-finished>span{background:var(--sage-soft);width:4.5rem;height:4.5rem;color:var(--sage-strong);border-radius:50%;place-items:center;display:grid}.cooking-state>svg{width:2.4rem;color:var(--sage)}.timer-permission-overlay{z-index:110}.timer-permission-dialog{z-index:111}.shopping-preview-dialog{max-width:38rem}.servings-control{border:1px solid var(--line);background:#fffefa;border-radius:1rem;justify-content:space-between;align-items:center;gap:.8rem;margin:1.2rem 0;padding:.85rem;font-weight:760;display:flex}.servings-control>span{grid-template-columns:2.75rem 4.5rem 2.75rem;align-items:center;display:grid}.servings-control button{border:1px solid var(--line);background:var(--sage-soft);width:2.75rem;height:2.75rem;color:var(--sage-strong);place-items:center;display:grid}.servings-control button:first-child{border-radius:.8rem 0 0 .8rem}.servings-control button:last-child{border-radius:0 .8rem .8rem 0}.servings-control input{border:solid var(--line);text-align:center;background:#fff;border-width:1px 0;width:100%;height:2.75rem}.shopping-preview-list{margin:0;padding:0;list-style:none}.shopping-preview-list li{border-bottom:1px solid var(--line)}.shopping-preview-list label{cursor:pointer;align-items:center;gap:.8rem;min-height:3.7rem;padding:.5rem 0;display:flex}.shopping-preview-list input,.shopping-groups input{width:1.35rem;height:1.35rem;accent-color:var(--sage);flex:none}.shopping-preview-list span{gap:.12rem;display:grid}.shopping-preview-list small{color:var(--muted);font-size:.72rem}.shopping-page{max-width:68rem}.shopping-toolbar{flex-direction:column;align-items:stretch;gap:.85rem;margin-bottom:1.2rem;display:flex}.shopping-toolbar>div{grid-template-columns:repeat(3,1fr);gap:.45rem;display:grid}.shopping-toolbar .secondary-button{min-width:0;padding-inline:.6rem}.sync-status{background:var(--sage-soft);width:fit-content;min-height:2rem;color:var(--sage-strong);border-radius:999px;align-items:center;padding:0 .7rem;font-size:.75rem;font-weight:780;display:inline-flex}.sync-status.syncing{color:#755019;background:#fff1cc}.sync-status.offline{color:#7f4639;background:#f6e2dc}.manual-item-form{border:1px solid var(--line);background:var(--surface);border-radius:1.25rem;gap:.75rem;margin-bottom:1.25rem;padding:1rem;display:grid}.manual-item-form>div{gap:.35rem;display:grid}.manual-item-form label{font-size:.78rem;font-weight:780}.manual-item-form input,.manual-item-form select{border:1px solid var(--line);background:#fffefa;border-radius:.8rem;width:100%;min-height:3rem;padding:.6rem .75rem}.shopping-groups{gap:1.7rem;display:grid}.shopping-groups section{border:1px solid var(--line);background:var(--surface);border-radius:1.25rem;overflow:hidden;box-shadow:0 .5rem 1.8rem #2c39280d}.shopping-group-head{background:#dfe8db94;justify-content:space-between;align-items:center;gap:1rem;min-height:4.2rem;padding:.8rem 1rem;display:flex}.shopping-group-head h2{font-size:1.55rem}.shopping-group-head span{color:var(--muted);font-size:.75rem;font-weight:760}.shopping-groups ul{margin:0;padding:0;list-style:none}.shopping-groups li{border-top:1px solid var(--line);grid-template-columns:minmax(0,1fr) 2.75rem;align-items:center;gap:.5rem;min-height:4.4rem;padding:.55rem .55rem .55rem .9rem;display:grid}.shopping-groups li>label{cursor:pointer;align-items:center;gap:.8rem;min-width:0;display:flex}.shopping-groups li>label>span{gap:.15rem;min-width:0;display:grid}.shopping-groups li strong{line-height:1.35}.shopping-groups li small{text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:.72rem;overflow:hidden}.shopping-groups li>select{border:1px solid var(--line);min-height:2.75rem;color:var(--muted);background:#fbfaf5;border-radius:.75rem;grid-column:1/-1;padding:.45rem .65rem}.shopping-groups li.is-checked strong{color:#8b9088;text-decoration:line-through}.shopping-groups li.is-checked{background:#faf9f5}.shopping-empty{text-align:center;background:#fffdf880;border:1px dashed #40543c4d;border-radius:1.5rem;align-content:center;place-items:center;gap:.7rem;min-height:20rem;padding:2rem;display:grid}.shopping-empty>svg{width:2.5rem;color:var(--sage)}.shopping-empty p{color:var(--muted);margin:0}.clear-completed{color:#8e4637;background:#fff8f4;border:1px solid #8e463740;border-radius:.9rem;align-items:center;gap:.45rem;min-height:3rem;margin-top:1.3rem;padding:0 1rem;font-weight:760;display:inline-flex}.clear-completed svg{width:1rem}.admin-panel,.settings-form{background:var(--surface);border:1px solid var(--line);border-radius:1.5rem;overflow:hidden;box-shadow:0 .7rem 2.5rem #2c39280f}.admin-row{border-bottom:1px solid var(--line);grid-template-columns:1fr auto;align-items:center;gap:.8rem;min-height:4.5rem;padding:.75rem 1rem;display:grid}.admin-row:last-child{border-bottom:0}.admin-row.head{display:none}.admin-row>span:first-child{align-items:center;gap:.75rem;display:flex}.admin-row i{background:var(--sage-soft);border-radius:50%;place-items:center;width:2.5rem;height:2.5rem;font-size:.72rem;font-style:normal;font-weight:800;display:grid}.admin-identity{gap:.15rem;min-width:0;display:grid}.admin-identity strong,.admin-identity small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.admin-identity small{color:var(--muted);font-size:.78rem}.admin-row>span:nth-child(2),.admin-row>span:nth-child(3){display:none}.admin-row b{color:var(--sage-strong)}.admin-edit{border:1px solid var(--line);min-height:2.65rem;color:var(--ink);background:0 0;border-radius:.85rem;justify-content:center;align-items:center;gap:.35rem;padding:0 .75rem;font-weight:720;display:inline-flex}.admin-edit svg{width:1rem}.narrow-page{max-width:52rem}.settings-form{box-shadow:none;background:0 0;border:0;border-radius:0;gap:1rem;padding:0;display:grid;overflow:visible}.settings-section{border:1px solid var(--line);background:var(--surface);border-radius:1.5rem;gap:1rem;min-width:0;margin:0;padding:1.25rem;display:grid;box-shadow:0 .7rem 2.5rem #2c39280f}.settings-section legend{color:var(--ink);padding:0 .45rem;font-family:Newsreader Variable,serif;font-size:1.65rem;font-weight:650;line-height:1.1}.settings-section>.form-note{margin:0}.settings-username{border:1px solid var(--line);background:#dfe8db6b;border-radius:1rem;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.2rem .8rem;padding:.9rem 1rem;display:grid}.settings-username>span{color:var(--muted);font-size:.78rem;font-weight:760}.settings-username>strong{color:var(--sage-strong)}.settings-username>small{color:var(--muted);grid-column:1/-1;font-size:.74rem}.settings-fields{grid-template-columns:minmax(0,1fr);gap:.9rem;display:grid}.settings-fields>div{gap:.4rem;min-width:0;display:grid}.settings-field-wide{grid-column:1/-1}.settings-form label,.form-field label{font-size:.82rem;font-weight:780}.settings-form input,.form-field input,.form-field textarea{border:1px solid var(--line);width:100%;min-height:3.2rem;color:var(--ink);background:#fffefa;border-radius:.9rem;padding:.75rem .9rem}.settings-fields small{color:var(--muted);font-size:.74rem;line-height:1.45}.profile-message{border-radius:1rem;margin:0;padding:.85rem 1rem;font-size:.84rem;font-weight:700}.profile-message.success{background:var(--sage-soft);color:var(--sage-strong);border:1px solid #40543c2e}.profile-message.error{color:#7c4034;background:#fff8f4;border:1px solid #8e46373d}.settings-actions{justify-content:flex-end;display:flex}.settings-actions .primary-button{width:100%}.backup-last-date{color:var(--sage-strong);margin:0;font-size:.84rem;font-weight:780}.backup-download{width:100%}.backup-export-progress{background:#dfe8db52;border:1px solid #40543c2e;border-radius:1rem;gap:.55rem;min-width:0;padding:.9rem 1rem;display:grid}.backup-export-progress-heading{min-width:0;color:var(--sage-strong);justify-content:space-between;align-items:baseline;gap:1rem;display:flex}.backup-export-progress-heading strong{min-width:0;font-size:.84rem}.backup-export-progress-heading span{font-variant-numeric:tabular-nums;flex:none;font-size:.84rem;font-weight:800}.backup-export-progress progress{width:100%;height:.7rem;color:var(--sage-strong);accent-color:var(--sage-strong);background:#40543c1f;border:0;border-radius:999px;overflow:hidden}.backup-export-progress progress::-webkit-progress-bar{background:#40543c1f;border-radius:999px}.backup-export-progress progress::-webkit-progress-value{background:var(--sage-strong);border-radius:999px}.backup-export-progress progress::-moz-progress-bar{background:var(--sage-strong);border-radius:999px}.backup-export-progress small{color:var(--muted);font-size:.76rem;line-height:1.45}.backup-import-controls{border-top:1px solid var(--line);gap:.6rem;padding-top:1rem;display:grid}.backup-import-controls label{font-size:.82rem;font-weight:780}.backup-import-controls input[type=file]{min-height:3.2rem;padding:.55rem}.backup-import-controls input[type=file]::file-selector-button{border:1px solid var(--line);background:var(--surface);min-height:2.1rem;color:var(--ink);font:inherit;cursor:pointer;border-radius:.7rem;margin-right:.7rem;padding:0 .75rem;font-size:.76rem;font-weight:750}.backup-privacy{color:var(--muted);background:#dfe8db61;border-radius:.9rem;margin:0;padding:.8rem .9rem;font-size:.76rem;line-height:1.55}.backup-summary{background:var(--sage-soft);color:var(--sage-strong);border:1px solid #40543c2e;border-radius:1rem;gap:.35rem;padding:.9rem 1rem;display:grid}.backup-summary span,.backup-summary small{font-size:.8rem}.backup-summary small{color:var(--muted)}.form-note{color:var(--muted);line-height:1.6}.empty-state,.app-loading{text-align:center;min-height:70vh;color:var(--muted);align-content:center;place-items:center;gap:1rem;display:grid}.empty-state>svg,.app-loading>svg{width:2rem;color:var(--sage)}.bottom-nav{z-index:30;-webkit-backdrop-filter:blur(1.4rem);backdrop-filter:blur(1.4rem);background:#fffdf8e8;border:1px solid #38483426;border-radius:1.35rem;grid-template-columns:repeat(6,minmax(0,1fr));min-height:4.2rem;padding:.35rem;display:grid;position:fixed;bottom:.7rem;left:.7rem;right:.7rem;box-shadow:0 1rem 3rem #2c392829}.bottom-nav a,.bottom-nav button{min-width:0;min-height:3.5rem;color:var(--muted);background:0 0;border:0;border-radius:1rem;align-content:center;place-items:center;gap:.2rem;font-size:.61rem;font-weight:720;display:grid}.bottom-nav a.active{color:var(--sage-strong);background:var(--sage-soft)}.bottom-nav svg{width:1.2rem}.dialog-overlay{z-index:100;-webkit-backdrop-filter:blur(.4rem);backdrop-filter:blur(.4rem);background:#1b221a61;animation:.16s ease-out fade-in;position:fixed;inset:0}.mobile-menu{z-index:101;background:var(--surface);width:min(22rem,88vw);padding:1.2rem;position:fixed;inset:0 0 0 auto;box-shadow:-1rem 0 4rem #1922172e}.mobile-menu h2{margin:0}.mobile-menu nav{gap:.4rem;margin-top:2rem;display:grid}.mobile-menu nav a,.mobile-menu nav button{min-height:3.4rem;color:var(--muted);background:0 0;border:0;border-radius:1rem;align-items:center;gap:.75rem;padding:0 .9rem;font-weight:720;display:flex}.mobile-menu nav a.active{background:var(--sage-soft);color:var(--sage-strong)}.mobile-menu nav svg{width:1.1rem}.dialog-content{z-index:101;background:#fffdf8f7;border:1px solid #ffffff8c;border-radius:1.6rem;width:min(42rem,100% - 1.5rem);max-height:calc(100vh - 1.5rem);padding:1.2rem;animation:.18s ease-out dialog-in;position:fixed;top:50%;left:50%;overflow:auto;transform:translate(-50%,-50%);box-shadow:0 2rem 6rem #19221740}.airfryer-sources-dialog{width:min(60rem,100% - 1.5rem)}.airfryer-source-grid{grid-template-columns:minmax(0,1fr);gap:.75rem;margin-top:1.25rem;display:grid}.airfryer-source-card{border:1px solid var(--line);background:#fffefad1;border-radius:1.15rem;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:.85rem;min-height:8.5rem;padding:1rem;transition:transform .16s,border-color .16s,box-shadow .16s;display:grid}.airfryer-source-card:hover{border-color:#40543c52;transform:translateY(-.15rem);box-shadow:0 .7rem 1.8rem #2c392814}.airfryer-source-icon{background:var(--sage-soft);width:2.75rem;height:2.75rem;color:var(--sage-strong);border-radius:.9rem;place-items:center;display:grid}.airfryer-source-icon svg{width:1.15rem}.airfryer-source-card>span:last-child{align-content:start;min-width:0;display:grid}.airfryer-source-card strong{color:var(--ink);font-family:Newsreader Variable,serif;font-size:1.15rem}.airfryer-source-card small{color:var(--sage-strong);margin-top:.1rem;font-size:.75rem;font-weight:750}.airfryer-source-card p{color:var(--muted);margin:.65rem 0 0;font-size:.86rem;line-height:1.45}.airfryer-source-card em{color:var(--sage-strong);align-items:center;gap:.25rem;margin-top:.8rem;font-size:.75rem;font-style:normal;font-weight:780;display:inline-flex}.airfryer-source-card em svg{width:.85rem}.airfryer-source-notice{color:var(--muted);margin:1rem 0 0;font-size:.78rem;line-height:1.5}.small-dialog{width:min(32rem,100% - 1.5rem)}.edit-dialog{flex-direction:column;display:flex;overflow:hidden}.cookbook-edit-dialog{width:min(40rem,100% - 1.5rem)}.dialog-head{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.dialog-head h2{margin:.45rem 0;font-size:2.2rem}.dialog-head p{color:var(--muted);max-width:48ch;margin:0}.mode-tabs{background:#eeece4;border-radius:1rem;grid-template-columns:repeat(2,minmax(0,1fr));gap:.3rem;margin:1.5rem 0 1rem;padding:.3rem;display:grid}.mode-tabs button{min-height:2.8rem;color:var(--muted);background:0 0;border:0;border-radius:.75rem;justify-content:center;align-items:center;gap:.4rem;font-weight:750;display:inline-flex}.mode-tabs button[aria-selected=true]{background:var(--surface);color:var(--sage-strong);box-shadow:0 .3rem 1rem #2c392812}.mode-tabs svg{width:1rem}.form-field{gap:.4rem;display:grid}.form-field textarea{resize:vertical;min-height:12rem}.form-field small{color:var(--muted)}.scan-import-panel{gap:1rem;display:grid}.scan-source-actions{grid-template-columns:minmax(0,1fr);gap:.65rem;display:grid}.scan-source-button{border:1px solid var(--line);background:var(--surface);min-height:3rem;color:var(--sage-strong);cursor:pointer;border-radius:1rem;justify-content:center;align-items:center;gap:.55rem;padding:.75rem 1rem;font-weight:760;display:flex;position:relative;overflow:hidden}.scan-source-button:hover{background:var(--sage-soft);border-color:#40543c52}.scan-source-button svg{flex:none;width:1.15rem}.scan-source-button input{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.scan-source-button:has(input:focus-visible){outline-offset:3px;outline:3px solid #5e76586b}.scan-source-button:has(input:disabled){opacity:.55;cursor:wait}.scan-language-field label,.scan-review label{font-size:.82rem;font-weight:780}.scan-language-field select,.scan-review input,.scan-review textarea{border:1px solid var(--line);width:100%;min-height:3rem;color:var(--ink);background:#fffefa;border-radius:.9rem;padding:.7rem .85rem}.scan-pages{border:1px solid var(--line);background:#fffdf894;border-radius:1rem;padding:.85rem}.scan-pages h3{justify-content:space-between;align-items:center;gap:1rem;margin:0;font-size:1.15rem;display:flex}.scan-pages h3 span{color:var(--muted);font:750 .75rem/1 Manrope Variable,sans-serif}.scan-pages>p{color:var(--muted);margin:.65rem 0 0;font-size:.84rem}.scan-pages ol{gap:.5rem;margin:.7rem 0 0;padding:0;list-style:none;display:grid}.scan-pages li{border:1px solid var(--line);background:var(--surface);border-radius:.85rem;grid-template-columns:2rem minmax(0,1fr);align-items:center;gap:.55rem;min-width:0;padding:.45rem;display:grid}.scan-page-number{background:var(--sage-soft);width:2rem;height:2rem;color:var(--sage-strong);border-radius:50%;place-items:center;font-size:.78rem;font-weight:800;display:grid}.scan-page-name{gap:.15rem;min-width:0;display:grid}.scan-page-name strong{text-overflow:ellipsis;white-space:nowrap;font-size:.84rem;overflow:hidden}.scan-page-name small{color:var(--muted);font-size:.72rem}.scan-page-actions{grid-column:1/-1;grid-template-columns:repeat(3,1fr);gap:.35rem;display:grid}.scan-page-actions button{border:1px solid var(--line);width:2.75rem;height:2.75rem;color:var(--muted);background:0 0;border-radius:.75rem;justify-self:center;place-items:center;display:grid}.scan-page-actions button:disabled{opacity:.35;cursor:not-allowed}.scan-page-actions svg{width:1rem}.scan-start-button{width:100%}.scan-review{gap:.8rem;display:grid}.scan-review-heading h3{margin:.35rem 0;font-size:1.6rem}.scan-review-heading p{color:var(--muted);margin:0;font-size:.88rem}.scan-review label{gap:.35rem;display:grid}.scan-review label.is-uncertain{background:#edd59a33;border:1px solid #d59a4359;border-radius:1rem;padding:.65rem}.scan-review label small{color:#7b5925}.scan-review-meta{grid-template-columns:minmax(0,1fr);gap:.6rem;display:grid}.dialog-form{gap:.45rem;margin-top:1.2rem;display:grid}.edit-dialog-form{grid-template-rows:minmax(0,1fr) auto;min-height:0;overflow:hidden}.edit-dialog-body{scrollbar-gutter:stable;gap:.45rem;min-height:0;padding:0 .2rem .2rem 0;display:grid;overflow-y:auto}.dialog-form label{margin-top:.55rem;font-size:.82rem;font-weight:780}.dialog-form input,.dialog-form textarea,.dialog-form select{border:1px solid var(--line);width:100%;min-height:3.2rem;color:var(--ink);background:#fffefa;border-radius:.9rem;padding:.75rem .9rem}.dialog-form textarea{resize:vertical}.expandable-text-field{gap:.45rem;display:grid}.expandable-text-field-head{justify-content:space-between;align-items:center;gap:.75rem;margin-top:.55rem;display:flex}.dialog-form .expandable-text-field-head label{min-width:0;margin:0}.expand-text-button{border:1px solid var(--line);background:var(--surface);min-height:2.75rem;color:var(--sage-strong);border-radius:.8rem;flex:none;justify-content:center;align-items:center;gap:.4rem;padding:0 .75rem;font-size:.78rem;font-weight:780;display:inline-flex}.expand-text-button:hover{background:var(--sage-soft);border-color:#40543c52}.expand-text-button svg{width:1rem}.expanded-text-overlay{z-index:102}.expanded-text-dialog{z-index:103;flex-direction:column;width:calc(100% - 1rem);height:calc(100dvh - 1rem);max-height:calc(100dvh - 1rem);padding:1rem;display:flex;overflow:hidden}.expanded-text-dialog .dialog-head h2{font-size:clamp(1.75rem,8vw,2.2rem)}.expanded-text-editor{flex:1;min-height:0;margin-top:1rem;display:grid}.expanded-text-editor textarea{resize:none;border:1px solid var(--line);width:100%;height:100%;min-height:15rem;color:var(--ink);font:inherit;background:#fffefa;border-radius:1rem;padding:1rem;font-size:1rem;line-height:1.6}.expanded-text-editor textarea:focus{outline-offset:2px;border-color:var(--sage);outline:3px solid #5e765852}.expanded-text-actions{flex:none;margin-top:1rem}.expanded-text-actions>button{flex:8rem;min-height:2.75rem}.image-upload-field{gap:.45rem;display:grid}.image-upload-field .dialog-message{margin-top:.15rem}.share-recipient-list{gap:.55rem;margin:1.25rem 0 0;padding:0;list-style:none;display:grid}.share-recipient-list li{border:1px solid var(--line);background:var(--surface);border-radius:1rem;grid-template-columns:2.75rem minmax(0,1fr);align-items:center;gap:.7rem;min-height:4.2rem;padding:.65rem;display:grid}.recipient-avatar{background:var(--sage-soft);width:2.75rem;height:2.75rem;color:var(--sage-strong);border-radius:50%;place-items:center;font-weight:820;display:grid}.share-recipient-list li>span:nth-child(2){min-width:0;display:grid}.share-recipient-list strong,.share-recipient-list small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.share-recipient-list small,.share-recipient-list time{color:var(--muted);font-size:.76rem}.share-recipient-list time{grid-column:2}.share-list-state{color:var(--muted);margin:1.25rem 0}.tag-editor{border:0;gap:.9rem;margin:1rem 0 0;padding:0;display:grid}.tag-editor legend{margin-bottom:.65rem;font-size:.82rem;font-weight:780}.tag-editor>div>strong{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:.4rem;font-size:.72rem;display:block}.tag-editor>div>div{flex-wrap:wrap;gap:.4rem;display:flex}.tag-editor label{margin:0}.tag-editor label input{opacity:0;pointer-events:none;position:absolute}.tag-editor label span{border:1px solid var(--line);background:var(--surface);min-height:2.3rem;color:var(--muted);cursor:pointer;border-radius:999px;align-items:center;padding:0 .7rem;font-size:.74rem;transition:border-color .15s,background .15s,color .15s;display:inline-flex}.tag-editor label input:checked+span{color:#31462e;background:#c9dbc4;border-color:#40543c6b;font-weight:780}.tag-editor label input:focus-visible+span{outline-offset:3px;outline:3px solid #5e76586b}.airfryer-form-section{background:#fff9eb;border:1px solid #d59a4352;border-radius:1.15rem;margin:1rem 0 0;padding:1rem}.airfryer-form-section legend{padding:0 .35rem;font-size:.82rem;font-weight:780}.airfryer-toggle{cursor:pointer;align-items:flex-start;gap:.7rem;margin:0;display:flex}.airfryer-toggle input{width:1.15rem;height:1.15rem;accent-color:var(--sage-strong);margin-top:.12rem}.airfryer-toggle span{gap:.15rem;display:grid}.airfryer-toggle small{color:var(--muted);line-height:1.45}.airfryer-form-grid{gap:.8rem;margin-top:1rem;display:grid}.airfryer-form-grid>div{gap:.4rem;display:grid}.airfryer-form-grid .airfryer-note-field{grid-column:1/-1}.rating-dialog form{gap:1.15rem;margin-top:1.2rem;display:grid}.rating-fieldset{border:0;margin:0;padding:0}.rating-fieldset legend{margin-bottom:.6rem;font-weight:800}.quality-options{gap:.45rem;display:grid}.repeat-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem;display:grid}.quality-options label,.repeat-options label{border:1px solid var(--line);background:var(--surface);min-height:3rem;color:var(--ink);cursor:pointer;border-radius:.9rem;align-items:center;padding:.7rem .85rem;font-size:.84rem;font-weight:700;display:flex;position:relative}.quality-options label:hover,.repeat-options label:hover,.quality-options label.active,.repeat-options label.active{border-color:var(--sage);background:var(--sage-soft);color:var(--sage-strong)}.quality-options input,.repeat-options input{width:1rem;height:1rem;accent-color:var(--sage-strong);margin:0 .65rem 0 0}:is(.quality-options label:has(input:focus-visible),.repeat-options label:has(input:focus-visible)){outline-offset:2px;outline:3px solid #5e76586b}.rating-remove{margin-top:.8rem}.notification-list{gap:.5rem;margin-top:1.2rem;display:grid}.notification-list a{border:1px solid var(--line);background:var(--surface);border-radius:.9rem;align-items:flex-start;gap:.7rem;padding:.8rem;display:flex}.notification-list a.is-unread{background:var(--sage-soft);border-color:#5e76584d}.notification-list svg{width:1.1rem;color:var(--sage-strong);flex:none}.notification-list span{gap:.2rem;display:grid}.notification-list small{color:var(--muted)}.notification-list .notification-action{color:var(--sage-strong);margin-top:.15rem;font-weight:800}.recipe-edit-meta{gap:.45rem .8rem;display:grid}.recipe-edit-meta>div{gap:.45rem;display:grid}.dialog-message{background:var(--sage-soft);color:var(--sage-strong);border-radius:.8rem;margin:.75rem 0 0;padding:.75rem;font-size:.84rem}.danger-dialog .eyebrow{color:#8e4637}.danger-confirmation{gap:.8rem;margin-top:1.4rem;display:grid}.danger-confirmation>svg{color:#8e4637;background:#f7e8df;border-radius:.8rem;width:2.25rem;height:2.25rem;padding:.5rem}.danger-confirmation h3,.danger-confirmation p{margin:0}.danger-confirmation p{color:var(--muted)}.danger-confirm-check{cursor:pointer;background:#fff8f4;border:1px solid #8e46373d;border-radius:1rem;align-items:flex-start;gap:.75rem;margin:0;padding:1rem;display:flex}.danger-confirm-check input{accent-color:#8e4637;flex:none;width:1.25rem;height:1.25rem;margin:.05rem 0 0}.danger-confirm-check span{line-height:1.45}.cookbook-recipe-editor{border-top:1px solid var(--line);margin-top:1rem;padding-top:1rem}.cookbook-recipe-editor h3{margin:0 0 .7rem;font-size:1.3rem}.cookbook-recipe-editor ul{gap:.45rem;margin:0;padding:0;list-style:none;display:grid}.cookbook-recipe-editor li{border:1px solid var(--line);background:#fffefa;border-radius:.85rem;justify-content:space-between;align-items:center;gap:.7rem;min-width:0;padding:.6rem .7rem;display:flex}.cookbook-recipe-editor li>span{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:720;overflow:hidden}.cookbook-remove-button{border:1px solid var(--line);background:var(--surface);min-height:2.75rem;color:var(--muted);border-radius:.75rem;flex:none;align-items:center;gap:.4rem;padding:0 .75rem;font-size:.875rem;font-weight:760;transition:border-color .15s,background .15s,color .15s;display:inline-flex}.cookbook-remove-button:hover:not(:disabled){color:#8e4637;background:#fff8f4;border-color:#8e46375c}.cookbook-remove-button:active:not(:disabled){background:#f7e8df}.cookbook-remove-button:disabled{opacity:.5;cursor:not-allowed}.cookbook-remove-button svg{width:1rem}.edit-danger-zone{background:#fff8f4b8;border:1px solid #8e463738;border-radius:1rem;gap:1rem;margin-top:1.25rem;padding:1rem;display:grid}.edit-danger-zone h3{color:#7c4034;letter-spacing:0;margin:0;font-family:inherit;font-size:1rem}.edit-danger-zone p{color:var(--muted);margin:.3rem 0 0;font-size:.875rem;line-height:1.5}.edit-danger-zone .danger-outline-button{width:100%}.bookmark-fallback{color:#6b3b31;background:#f7e8df;border:1px solid #b65f4a38;border-radius:1rem;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.7rem;margin-top:.85rem;padding:.85rem;display:grid}.bookmark-fallback>svg{width:1.3rem}.bookmark-fallback>div{gap:.1rem;min-width:0;display:grid}.bookmark-fallback p{color:#7f5a51;margin:0;font-size:.8rem;line-height:1.4}.bookmark-save-button{color:#fff;background:#8e4637;border:0;border-radius:.85rem;grid-column:1/-1;min-height:3rem;font-weight:780}.bookmark-save-button:hover{background:#74382d}.bookmark-save-button:disabled{opacity:.58;cursor:wait}.picker-list{gap:.45rem;margin-top:1rem;display:grid}.picker-list>button{border:1px solid var(--line);background:var(--surface);text-align:left;border-radius:1rem;align-items:center;gap:.7rem;width:100%;min-height:4rem;padding:.5rem;display:flex}.picker-list>button>span:nth-child(2){flex:1;min-width:0;display:grid}.picker-list small{color:var(--muted)}.picker-list svg{width:1.1rem;color:var(--sage)}.dialog-actions{flex-wrap:wrap;justify-content:flex-end;gap:.6rem;margin-top:1.5rem;display:flex}.dialog-actions>.danger-outline-button{margin-right:auto}.edit-dialog-actions{border-top:1px solid var(--line);background:#fffdf8fa;flex:none;grid-template-columns:minmax(0,1fr);margin-top:.75rem;padding-top:1rem;display:grid}.edit-dialog-actions>.primary-button{order:-1;width:100%}.edit-dialog-actions>.secondary-button{width:100%}.login-page{background:radial-gradient(circle at 15% 10%, #e5eddf, transparent 30rem), radial-gradient(circle at 90% 90%, #f1dfbb, transparent 34rem), var(--canvas);place-items:center;min-height:100vh;padding:1rem;display:grid}.login-card{-webkit-backdrop-filter:blur(1.5rem);backdrop-filter:blur(1.5rem);background:#fffdf8db;border:1px solid #ffffffb3;border-radius:2rem;gap:2rem;width:min(30rem,100%);padding:clamp(1.4rem,5vw,2.5rem);display:grid;box-shadow:0 2rem 6rem #2c392824}.login-card h1{margin-top:.7rem;font-size:clamp(2.8rem,11vw,4.3rem)}.login-card p,.login-card>small{color:var(--muted)}.login-card form{gap:.45rem;display:grid}.login-card label{margin-top:.45rem;font-size:.82rem;font-weight:780}.login-card input,.login-card select{border:1px solid var(--line);width:100%;min-height:3.25rem;color:var(--ink);background:#fffefa;border-radius:.9rem;padding:.75rem .9rem}.language-switcher{gap:.45rem;margin-bottom:.45rem;display:grid}.language-switcher label{display:block}.language-switcher select{cursor:pointer}.login-card .primary-button{width:100%;margin-top:.9rem}@keyframes fade-in{0%{opacity:0}}@keyframes dialog-in{0%{opacity:0;transform:translate(-50%,-48%)scale(.98)}}@media (width>=640px){.expanded-text-dialog{width:min(68rem,100% - 3rem);height:min(48rem,100dvh - 3rem);max-height:calc(100dvh - 3rem);padding:1.4rem}.expanded-text-actions>button{flex:none}.airfryer-source-grid,.airfryer-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.page{padding-inline:1.5rem}.welcome,.page-heading.has-action:not(.has-description){grid-template-columns:minmax(0,1fr) auto;column-gap:clamp(1.5rem,4vw,3rem)}.page-heading-action,.page-heading-action>.primary-button{width:auto}.page-heading.has-action:not(.has-description) .page-heading-action{justify-self:end}.page-heading.has-action:not(.has-description) .page-heading-actions{justify-content:flex-end}.search-bar{padding:.45rem .45rem .45rem 1rem;display:flex}.search-bar>svg{display:block}.search-bar input::placeholder{font-size:inherit}.search-bar button{grid-column:auto;width:auto}.cookbook-grid,.recipe-grid,.bookmark-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.recipe-library-controls{grid-template-columns:minmax(0,1fr) auto;align-items:start}.recipe-library-controls .sort-control{justify-self:end}.bookmark-fallback{grid-template-columns:auto minmax(0,1fr) auto}.bookmark-save-button{grid-column:auto;padding-inline:1rem}.recipe-edit-meta{grid-template-columns:repeat(2,minmax(0,1fr))}.search-bar button{padding-inline:1.2rem;font-size:.87rem}.dialog-content{padding:1.6rem}.mode-tabs{grid-template-columns:repeat(4,minmax(0,1fr))}.scan-source-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.scan-pages li{grid-template-columns:2rem minmax(0,1fr) auto}.scan-page-actions{grid-column:auto;display:flex}.scan-review-meta{grid-template-columns:repeat(3,minmax(0,1fr))}.edit-danger-zone{grid-template-columns:minmax(0,1fr) auto;align-items:center}.edit-danger-zone .danger-outline-button{width:auto}.edit-dialog-actions{flex-wrap:nowrap;display:flex}.edit-dialog-actions>.primary-button{order:initial;width:auto}.edit-dialog-actions>.secondary-button{width:auto}.share-recipient-list li{grid-template-columns:2.75rem minmax(0,1fr) auto}.share-recipient-list time{grid-column:auto}.shopping-toolbar{flex-direction:row;justify-content:space-between;align-items:center}.manual-item-form{grid-template-columns:minmax(0,1.5fr) minmax(7rem,.6fr) minmax(10rem,1fr) auto;align-items:end}.shopping-groups li{grid-template-columns:minmax(0,1fr) 11rem 2.75rem}.shopping-groups li>select{grid-column:auto}.settings-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.settings-actions .primary-button{width:auto}.backup-download{width:fit-content}.backup-import-controls{grid-template-columns:minmax(0,1fr) auto;align-items:end}.backup-import-controls label{grid-column:1/-1}}@media (width>=768px){.page{padding-top:3rem}.cookbook-detail-cover{aspect-ratio:21/8;min-height:0}.desktop-action{display:inline-flex}.search-area{margin-block:2.5rem 4rem}.recipe-hero{min-height:34rem;padding:2rem}.hero-overlay{width:min(26rem,100% - 7rem);padding:1.25rem 1.35rem}.hero-overlay h1{font-size:clamp(2.25rem,3.2vw,2.75rem)}.hero-action-rail{top:50%;right:1.25rem;transform:translateY(-50%)}.hero-action-rail .hero-book-desktop{display:grid}.recipe-primary-actions{z-index:3;-webkit-backdrop-filter:blur(1.2rem);backdrop-filter:blur(1.2rem);background:#fffdf8bd;border:1px solid #ffffff6b;border-radius:1rem;flex-wrap:wrap;align-items:center;width:fit-content;margin:-5.15rem 1.35rem 2.5rem auto;padding:.35rem;display:flex;position:relative;box-shadow:0 .8rem 2rem #2c39281f}.recipe-primary-actions .cook-now-button{order:2;grid-column:auto}.recipe-primary-actions .shopping-add-button{order:1}.recipe-primary-actions .hero-book-mobile{display:none}.recipe-detail .recipe-tags{margin-top:5rem}.recipe-columns{grid-template-columns:minmax(16rem,.75fr) minmax(0,1.4fr);gap:5rem}.admin-row{grid-template-columns:minmax(13rem,1.5fr) 1fr .8fr auto}.admin-row>span:nth-child(2),.admin-row>span:nth-child(3){display:inline}.admin-row.head{min-height:3rem;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-size:.74rem;font-weight:800;display:grid}.admin-row.head>span{display:inline!important}.library-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.bookmark-grid.library-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.cooking-dialog{border:1px solid #ffffff8c;border-radius:1.8rem;width:calc(100% - 2rem);max-width:72rem;height:calc(100dvh - 2rem);margin:auto;inset:1rem;overflow:hidden;box-shadow:0 2rem 6rem #1922174d}.cooking-topbar,.cooking-progress{padding-inline:1.5rem}.cooking-step{grid-template-columns:minmax(0,1.25fr) minmax(18rem,.75fr);align-items:start;gap:clamp(1.5rem,4vw,3.5rem);padding:clamp(1.5rem,4vw,3rem)}.cooking-instruction{padding-top:1rem}.cooking-instruction.is-short>p{font-size:clamp(2.25rem,4.2vw,3.35rem)}.cooking-instruction.is-medium>p{font-size:clamp(1.9rem,3.2vw,2.65rem)}.cooking-instruction.is-long>p{font-size:clamp(1.6rem,2.4vw,2rem)}.cooking-ingredients-head{grid-template-columns:minmax(0,1fr) auto;align-items:end}.cooking-navigation{grid-template-columns:minmax(8rem,auto) minmax(10rem,auto);justify-content:space-between;padding:1rem 1.5rem}.active-timers-summary{padding-inline:1.5rem}.active-timer-list{grid-template-columns:repeat(2,minmax(15rem,1fr));padding-inline:1.5rem}}@media (width>=1024px){.airfryer-source-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.app-shell{grid-template-columns:16.5rem minmax(0,1fr);display:grid}.sidebar{border-right:1px solid var(--line);background:#faf7efbf;flex-direction:column;height:100vh;padding:1.4rem 1rem;display:flex;position:sticky;top:0}.sidebar>.brand{padding-inline:.7rem}.sidebar nav{gap:.25rem;margin-top:2.5rem;display:grid}.sidebar nav a,.sidebar-foot>a,.sidebar-foot>button{min-height:3.2rem;color:var(--muted);text-align:left;background:0 0;border:0;border-radius:1rem;align-items:center;gap:.75rem;padding:0 .85rem;font-weight:700;display:flex}.sidebar nav a.active,.sidebar-foot>a.active{background:var(--sage-soft);color:var(--sage-strong)}.sidebar nav svg,.sidebar-foot svg{width:1.15rem}.sidebar-foot{gap:.15rem;margin-top:auto;display:grid}.notification-button{position:relative}.notification-button b{background:var(--terracotta);color:#fff;border-radius:999px;place-items:center;min-width:1.5rem;height:1.5rem;margin-left:auto;font-size:.7rem;display:grid}.user-chip{border-top:1px solid var(--line);align-items:center;gap:.65rem;margin-top:.8rem;padding:.7rem;display:flex}.user-chip>span{background:var(--sage-strong);color:#fff;border-radius:50%;place-items:center;width:2.4rem;height:2.4rem;font-size:.72rem;font-weight:800;display:grid}.mobile-header,.bottom-nav{display:none}.page{padding:4rem clamp(2rem,5vw,5rem) 5rem}.recipe-detail .recipe-hero{margin-inline:-3.35rem}.page-heading.has-description{grid-template-columns:minmax(9rem,1fr) minmax(12rem,.75fr);align-items:center;column-gap:clamp(1.5rem,3vw,3rem)}.page-heading.has-description.has-action{grid-template-columns:minmax(9rem,1fr) minmax(12rem,.75fr) auto}.page-heading-description-wrap{border-left:1px solid var(--line);padding-left:clamp(1.25rem,3vw,2.5rem)}.page-heading.has-action .page-heading-action{justify-self:end}.page-heading.has-action .page-heading-actions{justify-content:flex-end}.page-heading.has-description.has-action.page-heading-wide-action{grid-template-columns:minmax(0,1fr);align-items:start}.page-heading-wide-action .page-heading-description-wrap{border-left:0;padding-left:0}.page-heading.has-action.page-heading-wide-action .page-heading-action{justify-self:start}.page-heading.has-action.page-heading-wide-action .page-heading-actions{justify-content:flex-start}.search-bar{min-height:4.8rem;padding-left:1.35rem}.search-bar input{font-size:1.05rem}.cookbook-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.recipe-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.dashboard-page .recipe-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.library-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.bookmark-grid.library-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (width>=1280px){.page-heading.has-description.has-action.page-heading-wide-action{grid-template-columns:minmax(9rem,1fr) minmax(12rem,.75fr) auto;align-items:center}.page-heading-wide-action .page-heading-description-wrap{border-left:1px solid var(--line);padding-left:clamp(1.25rem,3vw,2.5rem)}.page-heading.has-action.page-heading-wide-action .page-heading-action{justify-self:end}.page-heading.has-action.page-heading-wide-action .page-heading-actions{justify-content:flex-end}.library-grid,.bookmark-grid.library-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media print{@page{margin:16mm}body{color:#000;background:#fff}.sidebar,.mobile-header,.bottom-nav,.shopping-toolbar,.manual-item-form,.clear-completed{display:none!important}.app-shell,.main-content{min-height:auto;display:block!important}.page.shopping-page{width:100%;max-width:none;padding:0}.shopping-page .page-heading{margin-bottom:1rem}.shopping-page .page-intro{color:#444;margin:0 0 1.5rem}.shopping-groups{gap:1rem}.shopping-groups section{break-inside:avoid;box-shadow:none;border-color:#bbb}.shopping-group-head{background:#eee;min-height:auto;padding:.65rem .8rem}.shopping-groups li{min-height:auto;padding:.55rem .8rem;display:block}.shopping-groups li.is-checked,.shopping-groups li>select,.shopping-groups li>button,.shopping-groups li input{display:none}.shopping-groups li>label{display:block}.shopping-groups li small{color:#555}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
