:root{--bg: #F6F1E8;--card: #FFFDF8;--ink: #28211A;--sub: #8B7D6B;--line: rgba(70, 52, 32, .14);--accent: #C2552F;--ok: #3F8A57;--warn: #A06B1E;--bad: #B0402F;--radius: 14px;--shadow: 0 1px 2px rgba(60, 42, 22, .05), 0 4px 14px rgba(60, 42, 22, .04)}*{box-sizing:border-box}html,body{margin:0;padding:0}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--ink);font-family:Instrument Sans,Helvetica Neue,sans-serif;font-size:15px;line-height:1.45;-webkit-font-smoothing:antialiased;overflow-x:hidden;-webkit-tap-highlight-color:transparent}h1,h2,h3,.stat-num,.sheet-total-num,.brand-mark{font-family:Bricolage Grotesque,Instrument Sans,sans-serif;letter-spacing:-.01em}button,input,select{font-family:inherit;font-size:inherit;color:inherit}p{margin:0;text-wrap:pretty}.shell{max-width:1020px;margin:0 auto;padding:26px 20px 110px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:26px}.topbar-actions{display:flex;align-items:center;gap:8px}.topbar-signout{display:inline-flex;align-items:center;gap:6px}.brand{display:flex;align-items:center;gap:12px}.brand-mark{width:42px;height:42px;border-radius:13px;background:var(--accent);color:#fff8ee;display:grid;place-items:center;font-size:23px;font-weight:700}.brand-name{font-size:21px;font-weight:700;margin:0;line-height:1.1}.brand-tag{font-size:12.5px;color:var(--sub)}.tabs{display:flex;gap:4px;padding:4px;background:#46342012;border-radius:999px}.tab{display:inline-flex;align-items:center;gap:7px;border:none;background:transparent;cursor:pointer;padding:8px 16px;border-radius:999px;font-weight:600;font-size:14px;color:var(--sub);transition:background .15s,color .15s}.tab:hover{color:var(--ink)}.tab-on{background:var(--ink);color:#fff8ee}.tab-on:hover{color:#fff8ee}.tab-count{font-size:11px;font-weight:700;padding:1px 7px;border-radius:999px;background:#4634201f;color:inherit}.tab-on .tab-count{background:#fff8ee38}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.section-head{margin:26px 0 14px}.section-title{font-size:19px;font-weight:700;margin:0 0 2px}.section-sub{font-size:13.5px;color:var(--sub)}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.stat{padding:14px 16px}.stat-num{font-size:27px;font-weight:700;line-height:1.1}.stat-goal{font-size:14px;color:var(--sub);font-weight:600}.stat-label{font-size:12.5px;color:var(--sub);margin-top:2px}.goalbar{height:5px;border-radius:999px;background:#4634201a;overflow:hidden;margin-top:7px}.goalbar-fill{height:100%;border-radius:999px;transition:width .3s}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:none;cursor:pointer;border-radius:10px;padding:9px 15px;font-weight:600;font-size:14px;transition:filter .15s,background .15s}.btn-primary{background:var(--accent);color:#fff8ee}.btn-primary:hover{filter:brightness(.93)}.btn-ghost{background:transparent;border:1px solid var(--line);color:var(--ink)}.btn-ghost:hover{background:#4634200d}.btn-big{padding:12px 20px;font-size:15px;border-radius:12px}.btn-small{padding:6px 12px;font-size:13px}.btn-icon{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:9px;flex:none;border:none;background:transparent;cursor:pointer;color:var(--sub);transition:background .15s,color .15s}.btn-icon:hover{background:#46342014;color:var(--ink)}.btn-icon-danger:hover{background:#b0402f1a;color:var(--bad)}.btn:disabled,.btn-icon:disabled,.tab:disabled,.filter-chip:disabled,.seg-opt:disabled,.planner-add:disabled,.cook-timer-preset:disabled{opacity:.45;cursor:not-allowed}.btn:disabled:hover,.btn-icon:disabled:hover{filter:none;background:transparent}.btn:focus-visible,.btn-icon:focus-visible,.tab:focus-visible,.filter-chip:focus-visible,.seg-opt:focus-visible,.planner-add:focus-visible,.cook-timer-preset:focus-visible,.cook-unit-toggle:focus-visible,.addplan-slot:focus-visible,.planner-day:focus-visible,.planner-ov:focus-visible,.planner-pick:focus-visible,.planner-thisweek:focus-visible,.combo-opt:focus-visible,.ingsearch-opt:focus-visible,.stepper-btn:focus-visible,.fav-btn:focus-visible,.star-int:focus-visible,.auth-link:focus-visible,.checkbox:focus-visible,.settings-swatch:focus-visible,.planner-dup-opt:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.chip{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap}.chip-plain{background:#46342012;color:var(--sub)}.chip-ok{background:color-mix(in srgb,var(--ok) 13%,white);color:var(--ok)}.chip-have{background:color-mix(in srgb,var(--ok) 11%,white);color:var(--ok)}.chip-warn{background:color-mix(in srgb,var(--warn) 14%,white);color:var(--warn)}.chip-bad{background:color-mix(in srgb,var(--bad) 12%,white);color:var(--bad)}.chip-miss{background:transparent;border:1px dashed var(--line);color:var(--sub)}.chip-accent{background:color-mix(in srgb,var(--accent) 14%,white);color:var(--accent)}.t-warn{color:var(--warn);font-weight:600}.t-bad{color:var(--bad);font-weight:600}.input{padding:9px 11px;border-radius:10px;border:1px solid var(--line);background:#fbf6ee;outline:none;min-width:0;width:100%}.input:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent)}.field{display:flex;flex-direction:column;gap:5px}.field-grow{flex:1}.field-label{font-size:12px;font-weight:600;color:var(--sub);text-transform:uppercase;letter-spacing:.04em}.field-hint{font-size:12px;color:var(--sub)}.input-qty{width:90px}.stepper{display:inline-flex;align-items:stretch;border:1px solid var(--line);border-radius:10px;background:#fbf6ee;overflow:hidden}.stepper-btn{width:30px;border:none;background:transparent;cursor:pointer;display:grid;place-items:center;color:var(--sub)}.stepper-btn:hover{background:#4634200f;color:var(--ink)}.stepper-input{width:58px;border:none;background:transparent;text-align:center;font-weight:600;outline:none;padding:7px 0;-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}.stepper-input::-webkit-outer-spin-button,.stepper-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.seg{display:inline-flex;gap:3px;padding:3px;background:#46342012;border-radius:10px}.seg-opt{border:none;background:transparent;cursor:pointer;padding:6px 14px;border-radius:8px;font-weight:600;font-size:13.5px;color:var(--sub)}.seg-on{background:var(--card);color:var(--ink);box-shadow:0 1px 2px #3c2a161f}.checkbox{width:20px;height:20px;border-radius:6px;flex:none;border:1.5px solid var(--line);background:#fbf6ee;cursor:pointer;display:grid;place-items:center;color:#fff8ee}.checkbox-on{background:var(--accent);border-color:var(--accent)}.recipe-list{display:flex;flex-direction:column;gap:12px}.recipe-card{display:flex;align-items:center;gap:18px;padding:18px 20px}.recipe-ready{border-color:color-mix(in srgb,var(--ok) 36%,transparent)}.recipe-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:8px}.recipe-titlerow{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.recipe-name{font-size:17px;font-weight:700;margin:0}.fav-btn{border:none;background:none;cursor:pointer;padding:2px;color:var(--line);display:inline-flex}.fav-btn:hover{color:var(--warn)}.fav-on{color:#e5a50a}.btn-on{background:var(--ink);color:#fff8ee;border-color:var(--ink)}.kitchen-head-actions{display:inline-flex;align-items:center;gap:8px}.stars{display:inline-flex;align-items:center;gap:1px}.star{border:none;background:none;padding:0;line-height:0;color:var(--line)}.star svg{fill:currentColor}.star-on{color:#e5a50a}.star-int{cursor:pointer}.star-int:hover{color:#e5a50a}.stars-count{font-size:12px;color:var(--sub);font-weight:600;margin-left:5px}.recipe-rating-row{margin-top:2px}.recipe-rating-block{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:4px}.rate-yours{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;color:var(--sub)}.rate-hint{font-size:12px;color:var(--sub);font-style:italic}.cook-allergens{margin:0 22px;font-size:13px;color:var(--bad);font-weight:600}.recipe-meta{font-size:13px;color:var(--sub);display:flex;align-items:center;gap:4px;flex-wrap:wrap}.recipe-meta strong{color:var(--ink);font-weight:600}.recipe-chips{display:flex;flex-wrap:wrap;gap:6px}.recipe-warn{font-size:12.5px;color:var(--warn)}.recipe-cook{flex:none}.matchbar-wrap{display:flex;align-items:center;gap:10px}.matchbar{flex:1;max-width:280px;height:6px;border-radius:999px;background:#4634201a;overflow:hidden}.matchbar-fill{height:100%;border-radius:999px;background:var(--accent)}.matchbar-label{font-size:12.5px;font-weight:600;color:var(--sub);white-space:nowrap}.menu-hero{position:relative;overflow:hidden;border-radius:var(--radius);min-height:360px;display:flex;align-items:flex-end;box-shadow:var(--shadow);margin-bottom:4px}.menu-hero-media{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.menu-hero-scrim{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,#281c1000 25%,#181008d9)}.menu-hero-content{position:relative;z-index:1;padding:28px;display:flex;flex-direction:column;gap:8px}.menu-hero-kicker{font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:#f2c572}.menu-hero-title{font-size:30px;font-weight:800;margin:0;color:#fff8ee}.menu-hero-meta{font-size:13.5px;color:#fff8eed1;display:flex;align-items:center;gap:4px;flex-wrap:wrap}.menu-hero-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px}.menu-hero-actions{display:flex;gap:10px;margin-top:6px}.menu-hero-view{border-color:#fff8ee80;color:#fff8ee}.menu-hero-view:hover{background:#fff8ee1f}.menu-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px;margin-top:4px}.menu-card{overflow:hidden;cursor:pointer;display:flex;flex-direction:column;transition:transform .15s,box-shadow .15s}.menu-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px #3c2a1624}.menu-card-media-wrap{position:relative;aspect-ratio:4 / 3;border-radius:var(--radius) var(--radius) 0 0;overflow:hidden}.menu-card-media{width:100%;height:100%;object-fit:cover;display:block}.menu-monogram{display:flex;align-items:center;justify-content:center;font-family:Bricolage Grotesque,Instrument Sans,sans-serif;font-size:40px;font-weight:800;color:#fff8ee}.menu-hero-media.menu-monogram{position:absolute;top:0;right:0;bottom:0;left:0;font-size:96px}.menu-detail-media.menu-monogram{position:static;font-size:64px}.menu-card-fav{position:absolute;top:8px;right:8px;background:#fff8eed9;border-radius:999px;padding:5px}.menu-card-body{padding:12px 14px 14px;display:flex;flex-direction:column;gap:6px}.menu-card-name{font-size:15.5px;font-weight:700;margin:0}.menu-card-meta{font-size:12.5px;color:var(--sub);display:flex;align-items:center;gap:4px}.menu-card-chips{display:flex;flex-wrap:wrap;gap:5px}.menu-detail-overlay{justify-content:center;align-items:center;padding:20px;overflow-y:auto}.menu-detail-card{width:min(560px,100%);max-height:calc(100vh - 40px);overflow-y:auto;display:flex;flex-direction:column;animation:aboutIn .22s cubic-bezier(.2,.8,.3,1)}.menu-detail-media-wrap{position:relative;aspect-ratio:16 / 9;border-radius:var(--radius) var(--radius) 0 0;overflow:hidden}.menu-detail-media{width:100%;height:100%;object-fit:cover;display:block}.menu-detail-close{position:absolute;top:10px;right:10px;background:#281c108c;color:#fff8ee}.menu-detail-close:hover{background:#281c10bf;color:#fff8ee}.menu-detail-body{padding:18px 22px 22px;display:flex;flex-direction:column;gap:10px}.menu-detail-titlerow{display:flex;align-items:center;justify-content:space-between;gap:10px}.menu-detail-name{font-size:22px;font-weight:800;margin:0}.rform-photo{display:flex;align-items:center;gap:12px}.rform-photo-preview{width:56px;height:56px;border-radius:10px;object-fit:cover;border:1px solid var(--line);flex:none}@media(max-width:720px){.menu-hero{min-height:280px}.menu-hero-title{font-size:24px}.menu-hero-media.menu-monogram{font-size:72px}.menu-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#281c1073;display:flex;justify-content:flex-end;animation:fadeIn .18s ease}.sheet{width:min(500px,100%);height:100%;background:var(--bg);display:flex;flex-direction:column;box-shadow:-12px 0 40px #281c102e;animation:slideIn .22s cubic-bezier(.2,.8,.3,1)}@keyframes fadeIn{0%{opacity:0}}@keyframes slideIn{0%{transform:translate(40px);opacity:.4}}.sheet-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:22px 22px 0}.sheet-kicker{font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--accent)}.sheet-title{font-size:22px;font-weight:700;margin:2px 0}.sheet-sub{font-size:13.5px;color:var(--sub)}.sheet-scale{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 22px 4px}.cook-rows{flex:1;overflow-y:auto;padding:12px 22px;display:flex;flex-direction:column;gap:8px}.cook-row{display:flex;align-items:center;gap:11px;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:11px 13px}.cook-row-off{opacity:.45}.cook-row-info{flex:1;min-width:0}.cook-row-name{font-weight:600;font-size:14px}.cook-row-sub{font-size:12px;color:var(--sub)}.cook-row-amt{display:flex;align-items:center;gap:6px;flex:none}.cook-row-unit{font-size:12.5px;color:var(--sub);font-weight:600}.cook-row-kcal{flex:none;width:64px;text-align:right;font-weight:700;font-size:14px}.cook-row-kcal span{display:block;font-size:10.5px;font-weight:600;color:var(--sub)}.sheet-foot{padding:14px 22px 20px;border-top:1px solid var(--line);background:var(--card)}.sheet-warning{font-size:12.5px;color:var(--warn);background:color-mix(in srgb,var(--warn) 10%,white);border-radius:10px;padding:9px 12px;margin-bottom:12px}.sheet-total{display:flex;align-items:center;justify-content:space-between;gap:14px}.sheet-total-num{font-size:24px;font-weight:700;line-height:1.1}.sheet-total-sub{font-size:12.5px;color:var(--sub)}.pantry-add-card{padding:16px 18px}.add-form{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap}.add-form .field{flex:none}.add-form .field-grow{flex:1 1 200px}.add-form .btn{margin-bottom:1px}.pantry-list-card{margin-top:12px;padding:14px 18px 16px}.pantry-filter{margin-bottom:10px}.pantry-rows{display:flex;flex-direction:column}.pantry-row{display:flex;align-items:center;gap:12px;padding:11px 2px;border-bottom:1px solid var(--line)}.pantry-row:last-child{border-bottom:none}.pantry-info{flex:1;min-width:0}.pantry-name{font-weight:600;font-size:14.5px}.pantry-sub{font-size:12.5px;color:var(--sub)}.pantry-sub strong{color:var(--ink);font-weight:600}.pantry-exp{flex:none}.pantry-qty{display:flex;align-items:center;gap:6px;flex:none}.pantry-unit{font-size:12.5px;color:var(--sub);font-weight:600;width:26px}.pantry-foot{margin-top:14px;text-align:center}.pantry-templates-card{margin-top:12px;padding:14px 18px 16px}.templates-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.templates-title{font-size:15px;font-weight:700;margin:0}.templates-sub{font-size:12.5px;color:var(--sub);margin:2px 0 0}.templates-empty{font-size:13px;color:var(--sub);margin:12px 0 0}.templates-rows{display:flex;flex-direction:column;margin-top:10px}.template-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}.template-row:last-child{border-bottom:none}.template-info{display:flex;flex-direction:column;gap:2px;min-width:0}.template-name{font-weight:600;font-size:14px}.template-count{font-size:12px;color:var(--sub)}.template-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}.template-ing-list{font-size:12.5px;color:var(--sub);line-height:1.5}.pantry-combo{position:relative}.combo-list{position:absolute;top:100%;left:0;right:0;z-index:20;margin-top:4px;background:var(--card);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow);max-height:240px;overflow-y:auto;padding:4px}.combo-opt{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;padding:7px 9px;border:none;background:transparent;cursor:pointer;border-radius:8px;font-size:13.5px;text-align:left;color:var(--ink)}.combo-opt:hover{background:#4634200f}.combo-name{font-weight:600}.combo-cat{font-size:11.5px;color:var(--sub)}.combo-add{color:var(--accent);font-weight:600;justify-content:flex-start}.combo-empty{padding:8px 9px;font-size:13px;color:var(--sub);margin:0}.combo-newrow{flex-basis:100%;display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap;margin-top:4px;padding-top:10px;border-top:1px dashed var(--line)}.combo-new-title{font-weight:600;font-size:13px;align-self:center}.add-form-err{flex-basis:100%;margin:2px 0 0;font-size:12.5px;color:var(--bad)}.pantry-row-edit{flex-wrap:wrap;gap:10px;align-items:flex-end}.shop-card{margin-bottom:0}.shop-head{margin-bottom:6px}.shop-title{font-size:15.5px;font-weight:700;margin:0}.shop-sub{font-size:12.5px;color:var(--sub)}.goal-field{display:flex;flex-direction:column;gap:5px}.goal-input{width:110px}.history-groups{display:flex;flex-direction:column;gap:14px}.history-day{padding:16px 20px}.history-day-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding-bottom:10px;border-bottom:1px solid var(--line);margin-bottom:4px}.history-day-label{font-size:16px;font-weight:700;margin:0}.history-day-total{font-size:13px;color:var(--sub)}.history-day-total strong{color:var(--ink)}.history-entry{padding:11px 0;border-bottom:1px solid var(--line)}.history-entry:last-child{border-bottom:none}.history-entry-top{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.history-entry-name{font-weight:600;font-size:14.5px}.history-scale{color:var(--accent);font-weight:700;font-size:13px}.history-entry-kcal{font-weight:700;font-size:14px;white-space:nowrap}.history-entry-sub{font-size:12.5px;color:var(--sub);margin-top:2px}.filter-card{padding:12px 16px;display:flex;flex-direction:column;gap:8px;margin-bottom:14px}.filter-row{display:flex;align-items:baseline;gap:12px}.filter-label{font-size:12px;font-weight:600;color:var(--sub);text-transform:uppercase;letter-spacing:.04em;width:56px;flex:none}.filter-chips{display:flex;flex-wrap:wrap;gap:6px}.filter-chip{border:1px solid var(--line);background:transparent;cursor:pointer;padding:4px 12px;border-radius:999px;font-weight:600;font-size:12.5px;color:var(--sub);transition:background .15s,color .15s,border-color .15s}.filter-chip:hover{color:var(--ink)}.filter-chip-on{background:var(--accent);border-color:var(--accent);color:#fff8ee}.filter-chip-on:hover{color:#fff8ee}.ingsearch{position:relative;flex:1;min-width:0}.ingsearch-drop{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:30;background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:0 10px 30px #281c1029;overflow:hidden}.ingsearch-opt{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;border:none;background:transparent;cursor:pointer;padding:10px 14px;text-align:left}.ingsearch-opt:hover{background:#4634200f}.ingsearch-opt+.ingsearch-opt{border-top:1px solid var(--line)}.ingsearch-opt-name{font-weight:600;font-size:14px}.ingsearch-opt-stock{font-size:12.5px;font-weight:600;white-space:nowrap}.t-ok{color:var(--ok)}.ingsearch-none{padding:12px 14px;font-size:13px;color:var(--sub)}.ingsearch-selected{display:flex;align-items:center;gap:9px;flex-wrap:wrap;background:#fbf6ee;border:1px solid var(--line);border-radius:10px;padding:4px 6px 4px 12px}.ingsearch-selected-name{font-weight:700;font-size:14px}.section-head-row{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;flex-wrap:wrap}.rform-card{padding:18px 20px;margin-bottom:14px}.rform{display:flex;flex-direction:column;gap:16px}.rform-grid{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end}.rform-ings{display:flex;flex-direction:column;gap:8px;margin-bottom:8px}.rform-ing{display:flex;align-items:center;gap:8px}.rform-ing select{flex:1}.rform-grams{width:78px;flex:none}.rform-unit{font-size:12.5px;color:var(--sub);font-weight:600}.rform-kcal{width:70px;text-align:right;font-size:12.5px;font-weight:600;color:var(--sub);flex:none}.rform-foot{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:14px}.rform-total{font-size:14px;color:var(--sub)}.rform-total strong{color:var(--ink);font-size:16px}.rform-actions{display:flex;gap:8px}.recipe-ing-line{font-size:12.5px;color:var(--sub)}.recipe-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:2px}.food-toolbar{display:flex;gap:8px;margin-bottom:10px}.food-cat{width:170px;flex:none}.food-row{display:flex;align-items:center;gap:12px;padding:10px 2px;border-bottom:1px solid var(--line)}.food-row:last-child{border-bottom:none}.food-info{flex:1;min-width:0}.food-name{font-weight:600;font-size:14.5px;display:flex;align-items:center;gap:7px;flex-wrap:wrap}.food-sub{font-size:12.5px;color:var(--sub)}.food-cal{display:flex;align-items:center;gap:7px;flex:none}.food-cal-input{width:84px;text-align:right}.food-cal-unit{font-size:12px;color:var(--sub);font-weight:600;white-space:nowrap}.food-spacer{width:34px;flex:none}.food-manage{display:flex;align-items:center;gap:8px;flex:none}.food-cal-static{font-size:13px;font-weight:700;color:var(--ink);white-space:nowrap}.food-cal-static .food-cal-unit{font-weight:600}.ing-exists{font-size:12.5px;align-self:center}.empty{text-align:center;padding:44px 20px;display:flex;flex-direction:column;align-items:center;gap:8px}.empty-dot{width:12px;height:12px;border-radius:999px;background:var(--accent);opacity:.4;margin-bottom:4px}.empty-title{font-weight:700;font-size:15.5px}.empty-body{font-size:13.5px;color:var(--sub);max-width:380px}.toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%);z-index:70;background:var(--ink);color:#fff8ee;padding:11px 20px;border-radius:12px;font-weight:600;font-size:14px;box-shadow:0 8px 28px #281c104d;animation:toastIn .25s cubic-bezier(.2,.8,.3,1);max-width:calc(100vw - 40px);text-align:center}@keyframes toastIn{0%{transform:translate(-50%,14px);opacity:0}}@media(max-width:720px){.shell{padding:18px 14px 130px}.topbar{justify-content:center}.tabs{position:fixed;bottom:14px;left:50%;transform:translate(-50%);z-index:40;background:var(--card);border:1px solid var(--line);box-shadow:0 10px 30px #281c102e;max-width:calc(100vw - 20px);flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tab{padding:8px 12px;font-size:12.5px;gap:5px;flex:none;white-space:nowrap}.tab-count{display:none}.filter-row{flex-direction:column;gap:5px}.food-toolbar{flex-direction:column}.food-cat{width:100%}.food-row{flex-wrap:wrap}.food-info{flex:1 1 100%}.stats{grid-template-columns:repeat(3,1fr);gap:7px}.stat{padding:11px 12px}.stat-num{font-size:21px}.recipe-card{flex-direction:column;align-items:stretch;gap:12px;padding:16px}.recipe-cook{width:100%;min-height:44px}.cook-row{flex-wrap:wrap}.cook-row-info{flex:1 1 60%}.cook-row-kcal{width:auto}.pantry-row{flex-wrap:wrap}.pantry-info{flex:1 1 100%}.toast{bottom:76px}.add-form .field-grow{flex:1 1 100%}.add-form .field,.add-form .input-qty,.add-form .seg{flex:1 1 auto}.input-qty{width:auto}.goal-input,.goal-field{width:100%}.rform-grid>.field{flex:1 1 100%}.section-head{margin:18px 0 12px}.section-head-row,.section-head-actions,.recipe-actions,.rform-actions,.kitchen-head-actions{flex-wrap:wrap}.history-day,.planner-slot,.rform-card{padding-left:16px;padding-right:16px}.btn-small{padding:9px 14px;font-size:13.5px}.btn-icon{width:40px;height:40px}.stepper-btn{width:38px}}@media(max-width:400px){.shell{padding:16px 11px 130px}.stats{grid-template-columns:1fr 1fr}.stat:first-child{grid-column:1 / -1}.stat-num{font-size:24px}.planner-overview,.planner-days{gap:5px}.planner-day-num,.planner-ov-kcal{font-size:14px}.rform-actions .btn,.recipe-actions .btn{flex:1 1 auto}.filter-label{width:100%}}@media(pointer:coarse){.btn{min-height:42px}.btn-small{min-height:38px}.btn-icon{width:42px;height:42px}.stepper-btn{width:40px}.filter-chip,.planner-add,.cook-timer-preset{min-height:36px}}.settings-wrap{position:relative}.settings-pop{position:absolute;top:calc(100% + 8px);right:0;z-index:60;width:260px;padding:14px 16px;background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:0 10px 30px #281c1029;display:flex;flex-direction:column;gap:12px}.settings-row{display:flex;flex-direction:column;gap:6px}.settings-swatches{display:flex;gap:8px}.settings-swatch{width:26px;height:26px;border-radius:999px;border:2px solid transparent;cursor:pointer;padding:0}.settings-swatch-on{border-color:var(--ink)}.settings-toggle{display:flex;align-items:center;justify-content:space-between;gap:10px}.settings-toggle .field-label{text-transform:none;letter-spacing:0;font-size:13.5px}@media(max-width:720px){.settings-pop{right:auto;left:50%;transform:translate(-50%)}}.about-overlay{justify-content:center;align-items:center;padding:20px;overflow-y:auto}.about-card{width:min(460px,100%);max-height:calc(100vh - 40px);overflow-y:auto;padding:22px 24px;display:flex;flex-direction:column;gap:14px;animation:aboutIn .22s cubic-bezier(.2,.8,.3,1)}@keyframes aboutIn{0%{transform:translateY(14px);opacity:0}}.about-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.about-title{font-size:21px;font-weight:700;margin:0;line-height:1.1}.about-body{font-size:13.5px;color:var(--sub)}.about-meta{display:flex;gap:26px;margin:0;border-top:1px solid var(--line);padding-top:14px}.about-meta dt{font-size:11px;font-weight:600;color:var(--sub);text-transform:uppercase;letter-spacing:.04em}.about-meta dd{margin:2px 0 0;font-weight:700;font-size:14.5px}.settings-about{align-self:flex-start}.tab-lock{display:inline-flex;align-items:center;margin-left:5px;color:var(--sub);opacity:.75}.section-head-actions{display:flex;align-items:center;gap:12px}.trial-usage{font-size:12.5px;color:var(--sub);font-weight:600;white-space:nowrap}.trial-usage-max{color:var(--bad)}.trial-banner{padding:11px 16px;margin-bottom:14px;font-size:13.5px;color:var(--ink);border-color:color-mix(in srgb,var(--ok) 35%,var(--line));background:color-mix(in srgb,var(--ok) 8%,var(--card))}.trial-banner strong{color:var(--ok);font-weight:700}.trial-banner-limited{color:var(--warn);border-color:color-mix(in srgb,var(--warn) 38%,var(--line));background:color-mix(in srgb,var(--warn) 9%,var(--card))}.locked-view{text-align:center;padding:40px 26px;display:flex;flex-direction:column;align-items:center;gap:10px}.locked-badge{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;background:color-mix(in srgb,var(--accent) 12%,white);color:var(--accent)}.locked-title{margin:4px 0 0;font-size:18px}.locked-sub{margin:0;color:var(--sub);font-size:13.5px;max-width:380px}.settings-trial{display:flex;flex-direction:column;gap:7px;border-top:1px solid var(--line);padding-top:12px}.trial-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.trial-row-name{font-size:13px}.trial-row-controls{display:flex;align-items:center;gap:8px}.trial-cap{width:58px;padding:4px 7px;font-size:12.5px;text-align:center}.trial-hint{margin:2px 0 0;font-size:11px;color:var(--sub);line-height:1.4}.tier-select{max-width:160px;padding:4px 8px;font-size:12.5px}.recipe-steps{margin:2px 0 0;padding-left:20px;display:flex;flex-direction:column;gap:3px}.recipe-step{font-size:12.5px;color:var(--sub)}.recipe-step::marker{color:var(--accent);font-weight:700}.cook-steps{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin-top:4px}.cook-steps-title{font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--accent);margin-bottom:6px}.cook-steps .recipe-step{font-size:13px;color:var(--ink)}.rform-steps{display:flex;flex-direction:column;gap:8px;margin-bottom:8px}.rform-step{display:flex;align-items:center;gap:8px}.rform-step-no{width:22px;height:22px;flex:none;border-radius:999px;background:#46342012;color:var(--sub);font-size:11.5px;font-weight:700;display:grid;place-items:center}.auth-shell{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}.auth-card{width:min(380px,100%);padding:26px 26px 22px;display:flex;flex-direction:column;gap:20px}.auth-form{display:flex;flex-direction:column;gap:14px}.auth-error{font-size:13px;color:var(--bad);background:color-mix(in srgb,var(--bad) 10%,white);border-radius:10px;padding:9px 12px}.auth-notice{font-size:13px;color:var(--ok);background:color-mix(in srgb,var(--ok) 12%,white);border-radius:10px;padding:9px 12px}.auth-intro{margin:-6px 0 0;font-size:13.5px;color:var(--sub)}.auth-forgot{align-self:flex-end;font-size:12.5px}.cpw-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.cpw-actions .btn-big{flex:1 1 140px}.cpw-modal{width:min(380px,100%);padding:24px;display:flex;flex-direction:column;gap:16px}.cpw-title{margin:0;font-size:18px}.confirm-message{margin:-4px 0 0;font-size:14px;line-height:1.45;color:var(--ink)}.btn-danger{background:var(--bad);color:#fff8ee}.btn-danger:hover{filter:brightness(.93)}.auth-divider{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--sub);text-transform:uppercase;letter-spacing:.04em}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:var(--line)}.auth-google{display:flex;justify-content:center;min-height:40px}.auth-switch{font-size:13.5px;color:var(--sub);text-align:center}.auth-link{border:none;background:none;padding:0;cursor:pointer;color:var(--accent);font-weight:600;font-size:13.5px}.auth-link:hover{text-decoration:underline}.load-shell{text-align:center;padding:80px 20px;color:var(--sub);font-weight:600}.settings-user{display:flex;align-items:center;justify-content:space-between;gap:10px;border-top:1px solid var(--line);padding-top:12px}.settings-user-name{font-weight:700;font-size:13.5px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.show-more{display:flex;justify-content:center;padding:12px 0 4px}.recipe-missing{font-size:12.5px;color:var(--bad)}.ingsearch-bar{display:flex;align-items:center;gap:8px}.ingsearch-bar .input{flex:1;min-width:0}.ingsearch-token{display:inline-flex;align-items:center;gap:5px;flex:none;background:color-mix(in srgb,var(--accent) 12%,white);color:var(--accent);border-radius:999px;padding:4px 6px 4px 11px;font-size:12.5px;font-weight:700;white-space:nowrap}.ingsearch-token-x{border:none;background:none;cursor:pointer;padding:0 4px;color:inherit;font-size:14px;line-height:1;font-weight:700}.ingsearch-token-x:hover{opacity:.7}.cook-timer{margin:8px 22px 0;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:10px}.cook-timer-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.cook-timer-label{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--accent)}.cook-timer-status{font-size:12px;font-weight:600;color:var(--sub)}.cook-timer-display{font-family:Bricolage Grotesque,Instrument Sans,sans-serif;font-size:40px;font-weight:700;line-height:1;letter-spacing:-.02em;text-align:center;font-variant-numeric:tabular-nums;color:var(--ink);padding:2px 0}.cook-timer-display-warn{color:var(--warn)}.cook-timer-display-done{color:var(--accent);animation:timerPulse .8s ease-in-out infinite}@keyframes timerPulse{50%{opacity:.35}}.cook-timer-set{display:flex;flex-direction:column;gap:8px}.cook-timer-fields{display:flex;align-items:center;gap:6px}.cook-timer-unit{font-size:12px;font-weight:600;color:var(--sub);margin-right:4px}.cook-timer-presets{display:flex;flex-wrap:wrap;gap:6px}.cook-timer-preset{border:1px solid var(--line);background:#fbf6ee;cursor:pointer;border-radius:999px;padding:4px 11px;font-size:12.5px;font-weight:600;color:var(--sub);transition:background .15s,color .15s,border-color .15s}.cook-timer-preset:hover{color:var(--ink);border-color:var(--accent)}.cook-timer-controls{display:flex;gap:8px}.cook-timer-controls .btn{flex:1}.btn:disabled{opacity:.45;cursor:not-allowed}.btn:disabled:hover{filter:none}.planner{display:flex;flex-direction:column;gap:16px}.planner-week{display:flex;align-items:center;justify-content:space-between;gap:12px}.planner-week-mid{text-align:center}.planner-week-label{font-family:Bricolage Grotesque,Instrument Sans,sans-serif;font-size:18px;font-weight:700}.planner-thisweek{border:none;background:none;cursor:pointer;color:var(--accent);font-weight:600;font-size:12.5px;padding:2px}.planner-thisweek:hover{text-decoration:underline}.planner-week-actions{display:inline-flex;align-items:center;gap:10px;justify-content:center}.expired-card{padding:12px 16px;margin-bottom:14px;border-color:color-mix(in srgb,var(--bad) 35%,var(--line))}.expired-head{display:flex;align-items:center;gap:7px;font-weight:600;font-size:13.5px;color:var(--bad);margin-bottom:8px}.expired-list{display:flex;flex-direction:column;gap:6px}.expired-item{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.expired-name{font-weight:600;font-size:13.5px;flex:1;min-width:100px}.expired-when{font-size:12px;color:var(--bad);font-weight:600}.cook-unit-toggle{border:1px solid var(--line);background:#fbf6ee;border-radius:8px;padding:3px 8px;cursor:pointer;min-width:38px;text-align:center}.cook-unit-toggle:hover{border-color:var(--accent);color:var(--accent)}.planner-overview{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;margin:14px 0 4px}.planner-ov{display:flex;flex-direction:column;align-items:center;gap:4px;border:none;background:none;cursor:pointer;padding:2px}.planner-ov-wd{font-size:10px;color:var(--sub);text-transform:uppercase}.planner-ov-bar{width:100%;height:34px;background:#46342014;border-radius:6px;display:flex;align-items:flex-end;overflow:hidden}.planner-ov-fill{width:100%;border-radius:6px;min-height:2px;transition:height .2s}.planner-ov-kcal{font-size:10.5px;font-weight:600;color:var(--sub)}.planner-ov-on .planner-ov-kcal{color:var(--ink)}.planner-ov-on .planner-ov-bar{outline:2px solid color-mix(in srgb,var(--accent) 45%,transparent)}.planner-day-actions{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}.planner-dup-wrap{position:relative}.planner-dup-menu{position:absolute;top:100%;right:0;z-index:20;margin-top:4px;min-width:120px;background:var(--card);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow);padding:4px}.planner-dup-opt{display:block;width:100%;text-align:left;border:none;background:transparent;cursor:pointer;padding:7px 9px;border-radius:8px;font-size:13px;color:var(--ink)}.planner-dup-opt:hover{background:#4634200f}.planner-ready{margin-left:7px;vertical-align:middle}.planner-days{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}.planner-day{position:relative;display:flex;flex-direction:column;align-items:center;gap:2px;border:1px solid var(--line);background:var(--card);border-radius:12px;padding:10px 4px;cursor:pointer;color:var(--ink);transition:border-color .15s,background .15s}.planner-day:hover{border-color:var(--accent)}.planner-day-on{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,var(--card))}.planner-day-wd{font-size:11px;font-weight:600;color:var(--sub);text-transform:uppercase;letter-spacing:.04em}.planner-day-on .planner-day-wd{color:var(--accent)}.planner-day-num{font-size:18px;font-weight:700;line-height:1}.planner-day-today .planner-day-num{color:var(--accent)}.planner-day-dot{position:absolute;top:6px;right:6px;width:6px;height:6px;border-radius:999px;background:var(--accent)}.planner-day-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;flex-wrap:wrap}.planner-day-title{font-size:20px;font-weight:700}.planner-day-sub{font-size:13px;color:var(--sub)}.planner-slots{display:flex;flex-direction:column;gap:10px}.planner-slot{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:12px 14px}.planner-slot-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.planner-slot-label{font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--accent)}.planner-add{display:inline-flex;align-items:center;gap:4px;border:1px dashed var(--line);background:transparent;cursor:pointer;border-radius:999px;padding:3px 11px;font-size:12.5px;font-weight:600;color:var(--sub);transition:color .15s,border-color .15s}.planner-add:hover{color:var(--accent);border-color:var(--accent)}.planner-empty{font-size:13px;color:var(--sub);padding:2px 0}.planner-meal{display:flex;align-items:center;gap:10px;padding:8px 0;border-top:1px solid var(--line)}.planner-meal-info{flex:1;min-width:0}.planner-meal-name{font-weight:600;font-size:14px}.planner-meal-kcal{font-size:12px;color:var(--sub)}.planner-picker-search{padding:14px 22px 6px}.planner-picker-list{flex:1;overflow-y:auto;padding:8px 22px 22px;display:flex;flex-direction:column;gap:6px}.planner-pick{display:flex;align-items:center;justify-content:space-between;gap:10px;text-align:left;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:11px 13px;cursor:pointer;color:var(--ink);transition:border-color .15s,background .15s}.planner-pick:hover{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 7%,var(--card))}.planner-pick-info{display:flex;flex-direction:column;gap:2px;min-width:0}.planner-pick-name{font-weight:600;font-size:14px}.planner-pick-meta{font-size:12px;color:var(--sub)}@media(max-width:720px){.planner-day{padding:8px 2px}.planner-day-num{font-size:16px}}.recipe-cta{flex:none;display:flex;flex-direction:column;gap:6px}.addplan-body{flex:1;padding:16px 22px;display:flex;flex-direction:column;gap:16px}.addplan-slots{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.addplan-slot{border:1px solid var(--line);background:var(--card);cursor:pointer;border-radius:12px;padding:11px;font-weight:600;font-size:14px;color:var(--ink);transition:border-color .15s,background .15s,color .15s}.addplan-slot:hover{border-color:var(--accent)}.addplan-slot-on{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,var(--card));color:var(--accent)}@media(max-width:720px){.recipe-cta{width:100%}}
