:root{--bg:#FFF7EE;--card:#FFFFFF;--ink:#23201C;--ink2:#7A7264;--line:#F0E4D3;--coral:#FF5A2E;--coral2:#FF8A3D;--grad:linear-gradient(120deg,#FF5A2E,#FF2E7E 55%,#8B5CF6);--sage:#2FA36B;--amber:#F5A623;--purple:#8B5CF6;--teal:#0EA5A4;--radius:22px;--shadow:0 12px 32px rgba(190,90,20,.12);--nav-h:68px}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.55 "Plus Jakarta Sans",system-ui,sans-serif;padding-bottom:0}
h1,h2,h3,h4{font-family:Fraunces,Georgia,serif;line-height:1.08;margin:0}
h2{font-size:32px}h3{font-size:20px}
button{font:inherit}
.logo{font-family:Fraunces,serif;font-weight:800;font-size:27px;letter-spacing:-.02em}.logo span{color:var(--coral)}.logo.big{font-size:40px}
.hidden{display:none!important}.eyebrow{text-transform:uppercase;letter-spacing:.14em;font-size:11px;font-weight:800;color:var(--coral);margin:0 0 4px}.eyebrow.light{color:#FFD9B0}.sub{color:var(--ink2)}.hint{font-weight:400;color:var(--ink2);font-size:12px}.fine{color:var(--ink2);font-size:12px}.error{background:#FDECEA;color:#B3261E;padding:10px 12px;border-radius:12px}
@keyframes rise{from{opacity:0;transform:translateY(16px) scale(.99)}to{opacity:1;transform:none}}
@keyframes pop{0%{transform:scale(.92)}60%{transform:scale(1.04)}100%{transform:scale(1)}}
@keyframes gradShift{0%{background-position:0% 50%}50%{background-position:100% 50%}100%{background-position:0% 50%}}
@keyframes sheetUp{from{transform:translateY(48px);opacity:.4}to{transform:none;opacity:1}}
@keyframes floaty{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-8px) rotate(2deg)}}
.rise{animation:rise .5s cubic-bezier(.2,.8,.25,1) both}
.stagger>*{animation:rise .5s cubic-bezier(.2,.8,.25,1) both;animation-delay:calc(var(--d,0)*70ms)}
.btn{border:1px solid var(--line);background:var(--card);color:var(--ink);padding:10px 18px;border-radius:999px;font-weight:800;cursor:pointer;transition:transform .15s,box-shadow .15s,background .15s;min-height:44px}
.btn:active{transform:scale(.96)}
.btn.primary{background:var(--grad);background-size:160% 160%;border:0;color:#fff;box-shadow:0 8px 20px rgba(255,46,126,.28)}
.btn.primary:hover{animation:gradShift 3s ease infinite;transform:translateY(-1px)}
.btn.white{background:#fff;color:var(--ink);border:0}.btn.dark{background:var(--ink);color:#fff;border:0}
.btn.ghost{background:transparent}.btn.small{padding:7px 14px;font-size:13px;min-height:38px}.btn.wide{width:100%}.btn.big{padding:14px;font-size:16px}.btn.danger{color:#B3261E;border-color:#EBC5C1}
.icon-btn{border:1px solid var(--line);background:var(--card);width:42px;height:42px;border-radius:50%;cursor:pointer;font-size:20px;font-weight:800;display:grid;place-items:center;flex:none;transition:.15s}.icon-btn:active{transform:scale(.9)}
input,select,textarea{width:100%;padding:12px 14px;border:1.5px solid var(--line);border-radius:14px;background:#fff;font:inherit;margin-top:4px}
label{font-weight:700;font-size:13px;display:block;margin:12px 0}
input:focus,select:focus,textarea:focus,.btn:focus-visible,.nav:focus-visible,.bnav:focus-visible{outline:3px solid rgba(255,90,46,.4);outline-offset:1px}
#toast{position:fixed;bottom:calc(var(--nav-h) + 18px);left:50%;transform:translateX(-50%) translateY(20px);background:var(--ink);color:#fff;padding:12px 20px;border-radius:999px;opacity:0;pointer-events:none;transition:.3s cubic-bezier(.2,.8,.25,1);z-index:200;font-weight:700;box-shadow:var(--shadow);max-width:92vw;text-align:center}
#toast.show{opacity:1;transform:translateX(-50%)}
/* AUTH */
.auth-wrap{min-height:100dvh;display:grid;grid-template-columns:1.1fr .9fr}
.auth-hero{padding:48px;color:#fff;background:var(--grad);background-size:180% 180%;animation:gradShift 14s ease infinite;display:flex;flex-direction:column;justify-content:center;gap:14px;position:relative;overflow:hidden}
.auth-hero h1{font-size:56px}.auth-hero h1 em{color:#FFE3B3}.auth-hero p{font-size:17px;opacity:.94;max-width:520px;margin:0}
.auth-hero .logo{color:#fff}.auth-hero .logo span{color:#FFE3B3}
.hero-photos{display:flex;gap:12px;margin-top:10px}
.hero-photos img{width:31%;aspect-ratio:1;object-fit:cover;border-radius:20px;border:3px solid rgba(255,255,255,.5);animation:floaty 6s ease-in-out infinite}
.hero-photos img:nth-child(2){animation-delay:1.2s}.hero-photos img:nth-child(3){animation-delay:2.1s}
.demo-box{background:rgba(255,255,255,.16);border:1.5px solid rgba(255,255,255,.4);border-radius:18px;padding:16px;display:flex;flex-direction:column;gap:6px;max-width:440px;backdrop-filter:blur(4px)}
.demo-box span{opacity:.9;font-size:13px}
.auth-card{padding:56px 44px;display:flex;flex-direction:column;justify-content:center;background:var(--bg)}
.tabs{display:flex;gap:6px;margin-bottom:8px;flex-wrap:wrap}.tab{border:0;background:none;font-weight:800;padding:10px 8px;cursor:pointer;color:var(--ink2);border-bottom:3px solid transparent}.tab.active{color:var(--ink);border-color:var(--coral)}
/* SHELL / NAV */
.topbar{position:sticky;top:0;z-index:50;background:rgba(255,247,238,.9);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:22px;padding:10px 22px}
.topnav{display:flex;gap:4px;flex:1}.nav{border:0;background:none;padding:9px 15px;border-radius:999px;font-weight:800;cursor:pointer;color:var(--ink2)}.nav.active{background:var(--ink);color:#fff}
.house{font-weight:700;color:var(--ink2);font-size:13px}.top-right{display:flex;gap:8px;align-items:center}
.shell{max-width:1240px;margin:0 auto;padding:18px 18px 110px}
.view{animation:rise .35s ease both}
.bottomnav{display:none}
.fab{position:fixed;right:18px;bottom:calc(var(--nav-h) + 16px);width:58px;height:58px;border-radius:50%;border:0;background:var(--grad);color:#fff;font-size:30px;font-weight:800;cursor:pointer;box-shadow:0 12px 26px rgba(255,46,126,.4);z-index:60;display:none;place-items:center;transition:.15s}.fab:active{transform:scale(.9) rotate(90deg)}
/* HERO + WEEK */
.hero-card{background:var(--grad);background-size:180% 180%;animation:gradShift 12s ease infinite;color:#fff;border-radius:26px;padding:24px;display:flex;justify-content:space-between;gap:16px;align-items:end;box-shadow:0 18px 38px rgba(255,46,126,.25);flex-wrap:wrap}
.hero-card h2{font-size:36px;color:#fff}.hero-card p{margin:4px 0 0;opacity:.92}
.hero-actions{display:flex;gap:8px;flex-wrap:wrap}
.week-bar{display:flex;align-items:center;gap:10px;margin-top:18px}
.week-strip{display:flex;gap:8px;flex:1;overflow-x:auto;padding:4px 2px;scrollbar-width:none}.week-strip::-webkit-scrollbar{display:none}
.day-pill{flex:1;min-width:50px;border:1.5px solid var(--line);background:var(--card);border-radius:18px;padding:9px 2px;cursor:pointer;text-align:center;transition:.18s;position:relative}
.day-pill small{display:block;text-transform:uppercase;font-size:10px;letter-spacing:.1em;color:var(--ink2);font-weight:800}
.day-pill b{font-family:Fraunces,serif;font-size:19px}
.day-pill .dots{display:flex;gap:3px;justify-content:center;margin-top:4px;height:6px}
.day-pill .dots i{width:6px;height:6px;border-radius:50%}
.day-pill:active{transform:scale(.94)}
.day-pill.selected{background:var(--ink);color:#fff;border-color:var(--ink);transform:translateY(-2px);box-shadow:var(--shadow)}
.day-pill.selected small{color:#FFD9B0}.day-pill.today{border-color:var(--coral)}
.week-range{color:var(--ink2);font-size:13px;font-weight:700;margin:6px 2px 0}
/* DAY SLOTS */
.day-slots{display:flex;flex-direction:column;gap:14px;margin-top:16px}
.slot{border-radius:var(--radius);overflow:hidden;background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow);animation:rise .5s both;animation-delay:calc(var(--d)*80ms)}
.slot-head{display:flex;align-items:center;gap:9px;padding:13px 16px 0}
.slot-tag{font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;padding:5px 11px;border-radius:999px;color:#fff}
.slot-head span{color:var(--ink2);font-size:12px;font-weight:700}
.slot-body{padding:12px 16px 16px}
.meal-card{display:flex;gap:14px;align-items:center;cursor:pointer;border-radius:18px;transition:.15s}.meal-card:active{transform:scale(.98)}
.meal-photo{width:96px;height:96px;border-radius:18px;object-fit:cover;flex:none;background:linear-gradient(135deg,#FFD9B0,#FF8A3D)}
.meal-info{flex:1;min-width:0}.meal-info h4{font-size:21px}
.meal-info p{color:var(--ink2);font-size:13px;margin:3px 0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.meta{display:flex;gap:10px;color:var(--ink2);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;flex-wrap:wrap}
.meal-actions{display:flex;gap:6px;margin-top:12px;flex-wrap:wrap}
.chip-btn{border:1.5px solid var(--line);background:#fff;border-radius:999px;padding:8px 13px;font-weight:800;font-size:12px;cursor:pointer;min-height:38px;transition:.15s}.chip-btn:active{transform:scale(.93)}
.chip-btn.done{background:var(--sage);border-color:var(--sage);color:#fff}
.slot-empty{border:2px dashed #EBD9BE;border-radius:18px;padding:20px;text-align:center;color:var(--ink2);cursor:pointer;background:#FFFCF6;transition:.15s;width:100%;font-weight:700}
.slot-empty:active{transform:scale(.98)}.slot-empty b{color:var(--coral);font-size:15px}
.custom-note{background:#FFF3DF;border:1.5px solid #F3DFAF;border-radius:18px;padding:16px;display:flex;justify-content:space-between;align-items:center;gap:10px}
/* GLANCE */
.section-title{margin:26px 0 12px}
.glance{display:flex;gap:10px;overflow-x:auto;padding-bottom:8px;scrollbar-width:none}.glance::-webkit-scrollbar{display:none}
.glance-card{flex:none;width:148px;background:var(--card);border:1.5px solid var(--line);border-radius:20px;padding:12px;cursor:pointer;transition:.15s;animation:rise .5s both;animation-delay:calc(var(--d)*50ms)}
.glance-card:active{transform:scale(.95)}.glance-card.today{border-color:var(--coral)}
.glance-card img{width:100%;height:74px;object-fit:cover;border-radius:13px;background:#FFE9D2}
.glance-card small{text-transform:uppercase;font-size:10px;letter-spacing:.09em;color:var(--ink2);font-weight:800}
.glance-card b{display:block;font-family:Fraunces,serif;font-size:14px;line-height:1.2;margin-top:3px}
.glance-card span{font-size:11px;color:var(--ink2)}
/* LIVE LIST */
.live-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-top:22px;box-shadow:var(--shadow)}
.live-head{display:flex;justify-content:space-between;align-items:center;gap:10px}
.rail-item{display:flex;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px solid #F7EDDC;font-size:14px}.rail-item b{text-transform:capitalize}
.struck{text-decoration:line-through;color:var(--ink2);font-size:13px;padding:4px 0;text-transform:capitalize}
/* RECIPES */
.page-head{display:flex;justify-content:space-between;align-items:end;gap:16px;flex-wrap:wrap;margin-bottom:6px}
.filters{display:flex;gap:10px;align-items:center;margin:16px 0;flex-wrap:wrap}.filters input{max-width:340px;margin:0}.filters select{max-width:200px;margin:0}
.chip-check{display:flex;gap:6px;align-items:center;margin:0;background:var(--card);border:1.5px solid var(--line);padding:10px 14px;border-radius:999px;cursor:pointer}.chip-check input{width:auto;margin:0}
.recipe-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:16px}
.recipe-card{background:var(--card);border:1px solid var(--line);border-radius:24px;overflow:hidden;cursor:pointer;box-shadow:var(--shadow);transition:transform .2s,box-shadow .2s;animation:rise .5s both;animation-delay:calc(var(--d,0)*60ms)}
.recipe-card:hover{transform:translateY(-5px)}.recipe-card:active{transform:scale(.97)}
.recipe-card img.ph{width:100%;height:160px;object-fit:cover;display:block;background:linear-gradient(135deg,#FFE3B3,#FF8A3D);transition:transform .4s}
.recipe-card:hover img.ph{transform:scale(1.05)}
.rc-body{padding:15px}.rc-body h3{font-size:19px;margin-bottom:5px}.rc-body p{color:var(--ink2);font-size:13px;margin:0 0 9px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.fav-btn{position:absolute;top:10px;right:10px;border:0;background:rgba(255,255,255,.94);width:38px;height:38px;border-radius:50%;cursor:pointer;font-size:17px;color:var(--coral);box-shadow:var(--shadow);z-index:2}
.rc-media{position:relative;overflow:hidden}
.tag{background:#FFF0E2;color:#B44A12;border-radius:999px;padding:3px 9px;font-size:11px;font-weight:800}
/* SHOPPING / PANTRY / INSIGHTS */
.progress-wrap{display:flex;gap:12px;align-items:center;margin:16px 0}.progress{flex:1;height:12px;background:#F3E6D2;border-radius:99px;overflow:hidden}.progress div{height:100%;background:linear-gradient(90deg,var(--sage),#5FD68B);border-radius:99px;transition:width .45s cubic-bezier(.2,.8,.25,1)}
.manual-form{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}.manual-form input{flex:1;min-width:130px;width:auto;margin:0}.manual-form input[type=number]{flex:.4}.manual-form input[type=date]{flex:.7}
.shop-group{background:var(--card);border:1px solid var(--line);border-radius:20px;padding:8px 18px;margin-bottom:12px;box-shadow:var(--shadow);animation:rise .45s both;animation-delay:calc(var(--d,0)*60ms)}
.shop-group h4{font-family:Fraunces,serif;margin:12px 0 4px;font-size:18px}
.shop-item{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid #F7EDDC}.shop-item:last-child{border:0}
.shop-item input{width:24px;height:24px;accent-color:var(--sage);flex:none;margin:0;cursor:pointer}
.shop-item.checked .nm{text-decoration:line-through;color:var(--ink2)}
.shop-item .qty{font-weight:800;min-width:84px}.shop-item small{color:var(--ink2)}.del{margin-left:auto;border:0;background:none;color:#B3261E;cursor:pointer;font-weight:800;padding:8px}
.box{background:var(--card);border:1px solid var(--line);border-radius:20px;padding:18px;margin-top:14px;box-shadow:var(--shadow)}
.pantry-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}
.pantry-card{background:var(--card);border:1px solid var(--line);border-radius:20px;padding:16px;box-shadow:var(--shadow);animation:rise .45s both;animation-delay:calc(var(--d,0)*50ms)}
.pantry-card.soon{border-color:var(--amber);background:#FFFBEB}
.pantry-card b{text-transform:capitalize;font-family:Fraunces,serif;font-size:17px}
.expiring-soon{color:#B97E10;font-weight:800}
.banner{background:#FFFBEB;border:1.5px solid #F3DFAF;border-radius:16px;padding:13px 16px;font-weight:700;margin-top:12px}
.insight-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-top:16px}
.insight{border-radius:22px;padding:20px;color:#fff;animation:rise .5s both;animation-delay:calc(var(--d,0)*70ms);box-shadow:var(--shadow)}
.insight b{font-family:Fraunces,serif;font-size:34px;display:block}.insight span{opacity:.85;font-size:11px;text-transform:uppercase;letter-spacing:.08em;font-weight:800}
.insight-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}
.empty{border:2px dashed var(--line);border-radius:20px;padding:38px;text-align:center;color:var(--ink2);background:#FFFCF6}
/* DIALOGS / SHEETS */
dialog{border:0;padding:0;background:transparent;max-width:760px;width:96vw}
dialog::backdrop{background:rgba(35,25,15,.55);backdrop-filter:blur(3px)}
dialog[open] .dialog-card,dialog[open] .sheet-card{animation:sheetUp .32s cubic-bezier(.2,.8,.25,1) both}
.dialog-card,.sheet-card{background:var(--bg);border-radius:26px;padding:22px;max-height:88dvh;overflow:auto;box-shadow:0 30px 80px rgba(0,0,0,.3)}
.sheet-grab{width:44px;height:5px;border-radius:99px;background:#E2D5BE;margin:0 auto 14px}
.dialog-head{display:flex;justify-content:space-between;align-items:start;gap:12px}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}
.ing-row{display:grid;grid-template-columns:2fr .7fr .8fr 1fr auto;gap:8px;margin-bottom:8px}.ing-row input,.ing-row select{margin:0}
.dialog-actions{display:flex;gap:8px;align-items:center;margin-top:16px;flex-wrap:wrap}.dialog-actions span{flex:1}
.invite-box{display:flex;gap:8px;align-items:center}.invite-box code{background:#FFF0E2;padding:11px 14px;border-radius:12px;font-size:16px;font-weight:800;flex:1;text-align:center}
.picker-list{display:flex;flex-direction:column;gap:9px;margin:14px 0;max-height:46dvh;overflow:auto}
.picker-item{display:flex;gap:12px;align-items:center;background:var(--card);border:1.5px solid var(--line);border-radius:18px;padding:10px;cursor:pointer;text-align:left;width:100%;transition:.15s;animation:rise .4s both;animation-delay:calc(var(--d,0)*40ms)}
.picker-item:active{transform:scale(.97);border-color:var(--coral)}
.picker-item img{width:58px;height:58px;border-radius:13px;object-fit:cover;flex:none;background:#FFE9D2}
.picker-item b{font-family:Fraunces,serif;display:block}.picker-item small{color:var(--ink2)}
.detail-hero{border-radius:22px;color:#fff;padding:22px;position:relative;overflow:hidden}
.detail-hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.detail-hero .overlay{position:relative;background:linear-gradient(180deg,transparent,rgba(20,10,0,.55));margin:-22px;padding:90px 22px 20px;border-radius:22px}
.detail-hero h3{font-size:30px;color:#fff}
.member-row{display:flex;gap:10px;align-items:center;padding:11px 0;border-bottom:1px solid #F3E9D7}
/* TABLET + PHONE */
@media(max-width:900px){
  .topbar .topnav,.topbar .house{display:none}
  .topbar{justify-content:space-between;padding:10px 16px}
  .shell{padding:14px 14px 120px}
  .bottomnav{display:flex;position:fixed;left:10px;right:10px;bottom:calc(10px + env(safe-area-inset-bottom));height:var(--nav-h);background:rgba(255,255,255,.94);backdrop-filter:blur(14px);border:1px solid var(--line);border-radius:24px;box-shadow:0 16px 38px rgba(120,60,10,.2);z-index:80;padding:6px}
  .bnav{flex:1;border:0;background:none;border-radius:18px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:10px;font-weight:800;color:var(--ink2);cursor:pointer;transition:.18s;min-height:52px}
  .bnav svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
  .bnav.active{background:var(--ink);color:#fff;animation:pop .3s ease}
  .fab{display:grid;bottom:calc(var(--nav-h) + 24px)}
  .auth-wrap{grid-template-columns:1fr}
  .auth-hero{padding:30px 22px 26px}.auth-hero h1{font-size:40px}
  .auth-card{padding:26px 20px 40px}
  .hero-card h2{font-size:29px}
  .meal-photo{width:82px;height:82px}
  h2{font-size:27px}
}
@media(max-width:560px){
  .recipe-grid{grid-template-columns:1fr 1fr;gap:11px}
  .recipe-card img.ph{height:110px}.rc-body{padding:11px}.rc-body h3{font-size:16px}.rc-body p{display:none}
  .form-grid{grid-template-columns:1fr}.ing-row{grid-template-columns:1fr 1fr}
  .glance-card{width:132px}
  dialog{width:100vw;max-width:100vw;margin:0}
  dialog .dialog-card,dialog .sheet-card{border-radius:26px 26px 0 0;max-height:92dvh}
  .insight-grid{grid-template-columns:1fr 1fr}
}
.lang-select{width:auto;margin:0;padding:8px 10px;border-radius:999px;font-weight:800}
.week-actions{display:flex;gap:8px;margin-top:16px;flex-wrap:wrap}
.assistant-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:14px;margin-top:14px}
.assistant-card{background:var(--card);border:1px solid var(--line);border-radius:22px;padding:18px;box-shadow:var(--shadow);animation:rise .5s both;animation-delay:calc(var(--d,0)*70ms)}
.assistant-card h4{font-family:Fraunces,serif;font-size:19px;margin-bottom:6px}
.mini-hit{display:flex;gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid #F7EDDC;cursor:pointer}.mini-hit img{width:44px;height:44px;border-radius:11px;object-fit:cover}.mini-hit b{font-size:14px;display:block}.mini-hit small{color:var(--ink2)}
.chat-box{margin-top:16px}.chat-log{display:flex;flex-direction:column;gap:9px;max-height:340px;overflow:auto;padding:6px 0}
.bubble{max-width:82%;padding:11px 15px;border-radius:19px;line-height:1.45;animation:rise .3s both}
.bubble.ai{background:#FFF0E2;align-self:flex-start;border-bottom-left-radius:6px}
.bubble.me{background:var(--ink);color:#fff;align-self:flex-end;border-bottom-right-radius:6px}
.bubble .hit-row{display:flex;gap:8px;margin-top:9px;flex-wrap:wrap}
.chat-form{display:flex;gap:8px;margin-top:10px}.chat-form input{flex:1;margin:0}
.gen-result{margin-top:16px;background:#FFFCF6;border:1.5px solid var(--line);border-radius:18px;padding:18px;animation:pop .3s both}
.pantry-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:14px}
.pstat{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:14px;text-align:center;box-shadow:var(--shadow)}.pstat b{font-family:Fraunces,serif;font-size:26px;display:block}.pstat span{font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:var(--ink2);font-weight:800}
.pantry-form select{flex:.8;min-width:120px;width:auto;margin:0}
.quick-add{display:flex;gap:7px;flex-wrap:wrap;margin:4px 0 8px}.quick-add button{border:1.5px dashed #E4CFAC;background:#FFFCF6;border-radius:999px;padding:7px 12px;font-weight:700;cursor:pointer;font-size:12px}
.pantry-card .loc{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--teal,#0EA5A4)}
.qty-stepper{display:flex;align-items:center;gap:6px;margin-top:10px}.qty-stepper button{width:34px;height:34px;border-radius:50%;border:1.5px solid var(--line);background:#fff;font-weight:800;cursor:pointer;font-size:16px}.qty-stepper b{min-width:64px;text-align:center}
.cook-step{font-family:Fraunces,serif;font-size:26px;line-height:1.35;margin:16px 0}
.cook-progress{height:10px;background:#F3E6D2;border-radius:99px;overflow:hidden}.cook-progress div{height:100%;background:var(--grad);transition:width .3s}
.timer-row{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}.timer-display{font-family:Fraunces,serif;font-size:30px}
.serv-stepper{display:inline-flex;align-items:center;gap:2px}.serv-stepper button{width:30px;height:30px;border-radius:50%;border:1.5px solid var(--line);background:#fff;font-weight:800;cursor:pointer}
@media print{header,.bottomnav,.fab,.manual-form,.progress-wrap,.btn,.hero-card{display:none!important}body{background:#fff}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
