:root{--paper:#efe9dc;--card:#fcfaf4;--card2:#f6f1e7;--ink:#39352d;--ink2:#5c564a;--mut:#938c7c;--line:#e4dccb;--line2:#d8cfbb;--sage:#5e8c5a;--sageD:#476e45;--sageF:#d6e5cf;--sageT:#e8efe1;--sageL:#f1f4ea;--terra:#bc6a3d;--terraT:#f2e2d3;--terraD:#9a5430;--gold:#c39a4e;--shadow:0 1px 2px #39352d0a, 0 6px 22px #39352d12;--shadowL:0 1px 2px #39352d0a, 0 2px 8px #39352d0d;--sidebar-bg:var(--sageL);--sidebar-border:var(--line);--sidebar-text:var(--ink2);--sidebar-text-strong:var(--ink);--sidebar-text-muted:var(--mut);--sidebar-active-bg:var(--sageT);--sidebar-active-border:var(--sage);--sidebar-hover-bg:var(--sageL);--sidebar-label:var(--mut);--accent:var(--sage);--accent-dark:var(--sageD);--main-bg:var(--card);--topbar-bg:var(--card)}*,:before,:after{box-sizing:border-box}html,body{height:100%;margin:0}
html,body{background:var(--paper);color:var(--ink);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font-family:Lora,Georgia,serif;font-size:15px;line-height:1.5}h1,h2,h3,h4{letter-spacing:-.01em;font-family:Playfair Display,Georgia,serif;font-weight:600}h1{font-size:27px}h2{font-size:21px}h3{font-size:17px}h4{font-size:16px}.meta,.caption,.sublabel{color:var(--mut);font-family:Lora,Georgia,serif;font-size:12.5px;font-style:italic}.micro{text-transform:uppercase;letter-spacing:.12em;color:var(--mut);font-family:Lora,Georgia,serif;font-size:11px;font-weight:400}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}
.btn{border:1px solid var(--line2);background:var(--card);color:var(--ink);cursor:pointer;white-space:nowrap;border-radius:10px;align-items:center;gap:6px;padding:8px 15px;font-family:Lora,Georgia,serif;font-size:14px;text-decoration:none;transition:background .15s,border-color .12s;display:inline-flex}.btn:hover{background:var(--card2)}.btn.pri{background:var(--sage);color:#fff;border-color:var(--sageD);box-shadow:0 1px 0 var(--sageD)}.btn.pri:hover{background:var(--sageD)}.btn.ghost{border:1px dashed var(--line2);color:var(--ink2);box-shadow:none;background:0 0;border-radius:9px}.btn.ghost:hover{background:var(--card2);border-style:solid}.btn.danger{color:#fff;background:#dc2626;border-color:#b91c1c;box-shadow:0 1px #b91c1c}.btn.danger:hover{background:#b91c1c}.chip{border:1px solid var(--line2);background:var(--card);color:var(--ink2);cursor:default;white-space:nowrap;border-radius:20px;align-items:center;gap:5px;padding:3px 11px;font-family:Lora,Georgia,serif;font-size:12.5px;display:inline-flex}.chip.ok{background:var(--sageT);color:var(--sageD);border-color:#bcd2b1}.chip.warn{background:var(--terraT);color:var(--terraD);border-color:#e0bd9d}.chip.sage{background:var(--sageT);color:var(--sageD);border-color:#bcd2b1}.chip.f{cursor:pointer;transition:background .15s,color .15s,border-color .15s}.chip.f:hover{background:var(--card2)}.chip.f.on{background:var(--sage);color:#fff;border-color:var(--sageD)}.ctile{background:var(--card);border:1px solid var(--line);box-shadow:var(--shadowL);border-radius:16px;flex-direction:column;padding:18px;display:flex}.tile-h{align-items:center;gap:10px;margin-bottom:14px;display:flex}.tile-h h3{color:var(--ink);margin:0;font-family:Playfair Display,Georgia,serif;font-size:17px;font-weight:600}.icon-chip{background:var(--sageT);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;display:flex}.icon-chip.t{background:var(--terraT)}.minirow{border-bottom:1px solid var(--line);color:var(--ink);justify-content:space-between;align-items:center;padding:10px 0;font-family:Lora,Georgia,serif;font-size:14px;display:flex}.minirow:last-child{border-bottom:none}.minirow .meta{color:var(--mut);font-size:12px;font-style:italic}.bento{grid-template-columns:1.5fr 1fr 1fr;gap:16px;display:grid}.tbl{background:var(--card);border:1px solid var(--line);box-shadow:var(--shadowL);border-radius:16px;overflow:hidden}.tbl .th{background:var(--card2);border-bottom:1px solid var(--line);letter-spacing:.1em;text-transform:uppercase;color:var(--mut);align-items:center;gap:14px;padding:11px 18px;font-family:Lora,Georgia,serif;font-size:11.5px;display:flex}.trow{border-bottom:1px solid var(--line);cursor:pointer;align-items:center;gap:14px;padding:13px 18px;transition:background .12s;display:flex}.trow:last-child{border-bottom:none}.trow:hover{background:var(--sageL)}.trow .nm{color:var(--ink);font-family:Lora,Georgia,serif;font-size:15px}.trow .nm small{color:var(--mut);font-size:12px;font-style:italic;display:block}.thumb{background:radial-gradient(120% 90% at 30% 20%, #ffffff80, transparent 60%), linear-gradient(135deg, var(--sageF), var(--paper));border:1px solid var(--line);border-radius:10px;flex:0 0 42px;width:42px;height:42px}.dgroup{background:var(--card);border:1px solid var(--line);box-shadow:var(--shadowL);border-radius:16px;margin-bottom:16px;overflow:hidden}.dgroup .dh{background:var(--sageL);border-bottom:1px solid var(--line);cursor:pointer;align-items:center;gap:11px;padding:13px 18px;display:flex}.dgroup .dh:hover{background:var(--sageT)}.dgroup .dh .di{background:var(--card);border:1px solid var(--line);border-radius:8px;flex:0 0 28px;justify-content:center;align-items:center;width:28px;height:28px;display:flex}.dgroup .dh h3{color:var(--ink);white-space:nowrap;text-overflow:ellipsis;flex:1;margin:0;font-family:Playfair Display,Georgia,serif;font-size:16px;font-weight:600;overflow:hidden}.drow{border-bottom:1px solid var(--line);cursor:pointer;align-items:center;gap:13px;padding:11px 18px;transition:background .12s;display:flex}.drow:last-child{border-bottom:none}.drow:hover{background:var(--card2)}.drow .fi{background:var(--card2);border:1px solid var(--line2);border-radius:5px;flex:0 0 30px;width:30px;height:36px;position:relative}.drow .fi:after{content:"";background:var(--paper);border-left:1px solid var(--line2);border-bottom:1px solid var(--line2);width:9px;height:9px;position:absolute;top:0;right:0}.rgrid{grid-template-columns:repeat(3,1fr);gap:18px;display:grid}.rcard{background:var(--card);border:1px solid var(--line);box-shadow:var(--shadowL);cursor:pointer;color:inherit;border-radius:16px;flex-direction:column;text-decoration:none;transition:transform .12s,box-shadow .12s;display:flex;overflow:hidden}.rcard:hover{box-shadow:var(--shadow);transform:translateY(-2px)}.rcard .imgph{border:none;border-bottom:1px solid var(--line);border-radius:0;height:140px}.imgph{background:radial-gradient(120% 90% at 30% 20%, #ffffff80, transparent 60%), linear-gradient(135deg, var(--sageF), var(--paper));border:1px solid var(--line);justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.askbar{background:var(--card);border:1px solid var(--line2);cursor:text;box-shadow:var(--shadowL);border-radius:14px;align-items:center;gap:12px;padding:13px 17px;transition:border-color .14s,box-shadow .14s;display:flex}.askbar:hover{box-shadow:0 0 0 3px #5e8c5a14, var(--shadowL);border-color:#b6cdac}.askbar .spark{background:var(--sage);border-radius:7px;flex:0 0 22px;justify-content:center;align-items:center;width:22px;height:22px;display:flex}.askbar .ph{color:var(--mut);flex:1;font-family:Lora,Georgia,serif;font-size:14px;font-style:italic}.askbar kbd{color:var(--mut);border:1px solid var(--line2);background:var(--card2);border-radius:6px;padding:2px 7px;font-family:Lora,Georgia,serif;font-size:11px}@keyframes fade{0%{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}
.meal-plan-grid{grid-template-columns:repeat(7,1fr);gap:12px;display:grid}.shopping-action-bar{z-index:38;background:var(--card);border-top:.5px solid var(--sidebar-border);position:fixed;bottom:0;left:0;right:0;box-shadow:0 -4px 16px #39352d0f}.stage{max-width:1280px;margin:22px auto 70px;padding:0 24px}.app{border:1px solid var(--line2);min-height:760px;box-shadow:var(--shadow);background:var(--card);border-radius:20px;display:flex;position:relative;overflow:hidden}.main{background:var(--card);flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.content{flex:1;padding:20px 30px 32px;animation:.28s fade;overflow-y:auto}.topbar{flex-shrink:0;justify-content:space-between;align-items:flex-start;margin-bottom:20px;padding:22px 30px 0;display:flex}.tab-bar{z-index:40;padding:12px 26px calc(26px + env(safe-area-inset-bottom));background:linear-gradient(180deg, #fcfaf400, var(--card) 38%);border-top:1px solid var(--line);flex-direction:row;justify-content:space-between;align-items:flex-end;display:flex;position:fixed;bottom:0;left:0;right:0}@media (min-width:960px){.tab-bar,.dash-mobile-ask,.recipe-hero-m{display:none}.recipe-desktop-nav{display:flex}.recipe-desktop-hero{display:block}.recipe-desktop-title{display:flex}.seg{display:none}.shoprow{display:flex}}.tab{width:54px;min-height:48px;color:var(--mut);cursor:pointer;flex-direction:column;align-items:center;gap:3px;text-decoration:none;transition:opacity .1s,transform .1s;display:flex}.tab svg{width:24px;height:24px;stroke:var(--mut);fill:none;stroke-width:1.7px}.tab .tab-label{color:var(--mut);font-family:Lora,Georgia,serif;font-size:11px;font-style:italic}.tab.active svg{stroke:var(--sageD)}.tab.active .tab-label{color:var(--sageD)}.tab:active{opacity:.7;transform:scale(.92)}.askfab-wrap{left:50%;bottom:calc(26px + env(safe-area-inset-bottom));flex-direction:column;align-items:center;gap:3px;display:flex;position:absolute;transform:translate(-50%)}.askfab{background:var(--sage);border:3px solid var(--paper);width:60px;height:60px;box-shadow:0 6px 16px #476e4566, 0 2px 0 var(--sageD);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;transition:transform .15s,box-shadow .15s;display:flex;position:relative;top:-16px}.askfab:active{box-shadow:0 2px 8px #476e454d, 0 1px 0 var(--sageD);transform:translateY(2px)}.askfab-label{color:var(--sageD);margin-top:-12px;font-family:Lora,Georgia,serif;font-size:11px;font-style:italic;font-weight:600}.topbar-avatars{display:none}@media (max-width:959px){.stage{max-width:100%;margin:0;padding:0}.app{box-shadow:none;border:none;border-radius:0;flex-direction:column;min-height:100dvh}aside.side{display:none!important}.main{width:100%;padding-bottom:calc(84px + env(safe-area-inset-bottom));flex:1}.content{padding:16px 18px calc(16px + env(safe-area-inset-bottom))}.topbar{padding:calc(14px + env(safe-area-inset-top)) 18px 0;margin-bottom:16px}.topbar h1{font-size:28px}.topbar-actions{flex-wrap:wrap;gap:8px;display:flex}.topbar-signout{display:none}.topbar-avatars{align-items:center;gap:0;display:flex}h1{font-size:28px}.btn{padding:14px 16px;font-size:16px}.btn.full{justify-content:center;width:100%}.cbox-lg{border:2px solid var(--line2);cursor:pointer;border-radius:9px;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;display:flex}.cbox-lg.checked{background:var(--sage);border-color:var(--sage)}.btn:active,.rcard:active,.mrow:active,.shoprow:active{opacity:.85;transition:transform .1s,opacity .1s;transform:scale(.985)}.sheet{overscroll-behavior:contain}body{font-size:15.5px}.bento{flex-direction:column;gap:14px;display:flex}.dash-desktop-only{display:none!important}.dash-mobile-ask{background:var(--card);border:1px solid var(--line2);box-shadow:var(--shadowL);cursor:pointer;border-radius:15px;align-items:center;gap:12px;margin-bottom:2px;padding:14px 16px;display:flex}.rgrid{grid-template-columns:1fr 1fr;gap:14px}.chip-scroll{-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-wrap:nowrap;padding-bottom:2px;padding-right:18px;overflow-x:auto}.chip-scroll::-webkit-scrollbar{display:none}.tbl .th{display:none}.trow{min-height:74px;padding:13px 16px}.trow:active{background:var(--sageL)}.trow-meta{display:none}.trow .thumb{border-radius:11px;flex:0 0 46px;width:46px;height:46px}.trow .nm{font-size:15.5px}.home-records-filters{-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-wrap:nowrap;padding-bottom:4px;overflow-x:auto}.home-records-filters::-webkit-scrollbar{display:none}.detail-panel{max-width:100vw}.shoprow{background:var(--card);border:1px solid var(--line);box-shadow:var(--shadowL);cursor:pointer;border-radius:14px;align-items:center;gap:14px;min-height:54px;margin-bottom:8px;padding:13px 16px;transition:background .1s;display:flex}.shoprow:active{background:var(--sageL)}.shoprow.done{background:var(--card2);box-shadow:none}.shoprow.done .shoprow-name{color:var(--mut);text-decoration:line-through}.progress-m{align-items:center;gap:12px;margin-bottom:16px;display:flex}.progress-m .track{background:var(--card2);border:1px solid var(--line);border-radius:3px;flex:1;height:5px;overflow:hidden}.progress-m .fillb{background:var(--sage);border-radius:3px;height:100%;transition:width .3s}.progress-m .lbl{color:var(--mut);white-space:nowrap;font-family:Lora,Georgia,serif;font-size:13.5px;font-style:italic}.recipe-hero-m{height:260px;margin:0 -18px;position:relative;overflow:hidden}.recipe-hero-m .hero-img{object-fit:cover;width:100%;height:100%;display:block}.recipe-hero-m .hero-ph{background:radial-gradient(120% 90% at 30% 20%, #ffffff80, transparent 60%), linear-gradient(135deg, var(--sageF), var(--paper));justify-content:center;align-items:center;width:100%;height:100%;display:flex}.recipe-hero-m .hero-scrim{background:linear-gradient(#0000 40%,#39352db3);position:absolute;inset:0}.recipe-hero-m .hero-top{justify-content:space-between;display:flex;position:absolute;top:14px;left:16px;right:16px}.recipe-hero-m .hero-bottom{padding:28px 18px 16px;position:absolute;bottom:0;left:0;right:0}.recipe-hero-m .hero-title{color:#fff;letter-spacing:-.01em;margin:0 0 8px;font-family:Playfair Display,Georgia,serif;font-size:26px;font-weight:600;line-height:1.1}.recipe-hero-m .hero-chips{flex-wrap:wrap;gap:8px;display:flex}.circ-btn-m{width:38px;height:38px;box-shadow:var(--shadowL);cursor:pointer;background:#fcfaf4eb;border:none;border-radius:50%;justify-content:center;align-items:center;display:flex}.seg{background:var(--card2);border:1px solid var(--line);border-radius:13px;gap:4px;margin-bottom:16px;padding:4px;display:flex}.seg button{color:var(--ink2);cursor:pointer;background:0 0;border:0;border-radius:9px;flex:1;padding:9px 0;font-family:Lora,Georgia,serif;font-size:14.5px}.seg button.on{background:var(--card);color:var(--sageD);box-shadow:var(--shadowL);font-weight:600}.recipe-desktop-nav,.recipe-desktop-hero,.recipe-desktop-title{display:none}.meal-plan-grid{flex-direction:column;gap:10px;display:flex}.shopping-action-bar{bottom:calc(84px + env(safe-area-inset-bottom))}@media (prefers-reduced-motion:reduce){*{transition-duration:.01ms!important;animation-duration:.01ms!important}}}body[data-cook-mode] .tab-bar{display:none!important}@media (max-width:959px){.modal-overlay{z-index:50;background:#0006;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.modal-card{width:100%;max-width:100%;padding:20px 18px calc(20px + env(safe-area-inset-bottom));border-bottom:none;border-radius:20px 20px 0 0;max-height:90vh;animation:.28s cubic-bezier(.4,0,.2,1) slide-up;overflow-y:auto}@keyframes slide-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}.modal-card:before{content:"";background:var(--line2);border-radius:3px;width:42px;height:5px;margin:0 auto 16px;display:block}@media (prefers-reduced-motion:reduce){.modal-card{animation:none}}a,button,[role=button],.tab,.rcard,.mrow,.shoprow,.trow,.dgrp,.chip{-webkit-tap-highlight-color:transparent}.tab:active{opacity:.6}.rcard:active{opacity:.9;transform:scale(.97)}.trow:active{background:var(--sageL)}.askfab:active{transform:translateY(2px)scale(.96)}.circ-btn-m:active{opacity:.75;transform:scale(.94)}.seg button:active{opacity:.8}@media (hover:none){.btn:hover,.rcard:hover{background:unset;transform:unset}.mrow:hover{background:unset}}.main{-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain}.sheet,.ask-drawer-panel,.modal-card{overscroll-behavior:contain}}
