:root{--screen:#f6f5f1;--surface:#fff;--ink:#232a24;--muted:#6d756a;--line:#232a2417;--green:#3a7d4f;--green-deep:#2e6640;--green-soft:#e6f1e8;--amber:#a5711b;--amber-soft:#f7efdc;--red:#bf3a33;--red-soft:#fae9e6;--radius:18px;--shadow-card:0 1px 2px #232a240d, 0 8px 24px -12px #232a242e}*{box-sizing:border-box}html,body{height:100%;margin:0}body{color:var(--ink);-webkit-font-smoothing:antialiased;background:radial-gradient(900px 600px at 15% 0,#3a7d4f1a,#0000 60%),radial-gradient(800px 600px at 100% 100%,#a5711b14,#0000 55%),#e9ebe4;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}.stage{justify-content:center;align-items:center;min-height:100dvh;padding:24px;display:flex}.phone{background:#16181a;border-radius:54px;width:400px;height:min(840px,94dvh);padding:10px;position:relative;box-shadow:0 30px 70px -20px #141a1673,0 4px 14px #141a1633}.phone-notch{z-index:30;background:#16181a;border-radius:14px;width:110px;height:26px;position:absolute;top:20px;left:50%;transform:translate(-50%)}.phone-screen{background:var(--screen);border-radius:46px;flex-direction:column;height:100%;display:flex;position:relative;overflow:hidden}.auth-screen{background:var(--screen);z-index:35;flex-direction:column;justify-content:center;padding:60px 24px 24px;display:flex;position:absolute;inset:0;overflow-y:auto}.auth-screen[hidden]{display:none}.auth-card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-card);padding:24px}.auth-brand{text-align:center;margin-bottom:24px}.brand-icon{background:var(--green-soft);width:52px;height:52px;color:var(--green-deep);border-radius:16px;place-items:center;margin:0 auto 12px;display:grid}.brand-icon svg{width:28px;height:28px}.auth-brand h1{letter-spacing:-.02em;margin:0;font-size:20px;font-weight:700}.auth-brand p{color:var(--muted);margin:4px 0 0;font-size:13px}.btn-text{color:var(--green-deep);cursor:pointer;background:0 0;border:none;margin-top:6px;padding:10px;font-size:13px;font-weight:600}.app-screen{flex-direction:column;height:100%;display:flex;position:relative}.app-screen[hidden]{display:none}.appbar{background:linear-gradient(180deg, #f6f5f1fa, var(--screen));flex:none;justify-content:space-between;align-items:center;gap:12px;padding:54px 20px 14px;display:flex}.appbar-title h1{letter-spacing:-.02em;margin:0;font-size:18px;font-weight:700}.appbar-title p{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;max-width:170px;margin:2px 0 0;font-size:11.5px;overflow:hidden}.appbar-actions{align-items:center;gap:8px;display:flex}.icon-btn{background:var(--surface);width:38px;height:38px;color:var(--ink);box-shadow:var(--shadow-card);cursor:pointer;border:none;border-radius:50%;place-items:center;transition:transform .15s,background .15s;display:grid;position:relative}.icon-btn svg{width:18px;height:18px}.icon-btn:active{transform:scale(.94)}.icon-btn-sm{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:8px;place-items:center;padding:6px;transition:color .15s,background .15s;display:grid}.icon-btn-sm:hover{color:var(--red);background:var(--red-soft)}.icon-btn-sm svg{width:16px;height:16px}.badge{background:var(--red);color:#fff;text-align:center;border-radius:9px;min-width:17px;height:17px;padding:0 4px;font-size:10.5px;font-weight:700;line-height:17px;position:absolute;top:2px;right:1px}.panels{flex:1;min-height:0;position:relative}.tab-panel{opacity:0;pointer-events:none;padding:4px 20px 24px;transition:opacity .22s,transform .22s;position:absolute;inset:0;overflow-y:auto;transform:translateY(6px)}.tab-panel.is-active{opacity:1;pointer-events:auto;transform:none}.section-head{justify-content:space-between;align-items:flex-start;gap:12px;margin:10px 0 14px;display:flex}.section-head h2{letter-spacing:-.01em;margin:0;font-size:17px;font-weight:700}.section-sub{color:var(--muted);margin:3px 0 0;font-size:12.5px}.chip{background:var(--green-soft);color:var(--green-deep);letter-spacing:.01em;border-radius:999px;flex:none;padding:4px 10px;font-size:11px;font-weight:600}.chip-green{background:var(--green-soft);color:var(--green-deep)}.btn-primary{background:var(--green);color:#fff;cursor:pointer;border:none;border-radius:12px;flex:none;align-items:center;gap:6px;padding:10px 16px;font-family:inherit;font-size:14px;font-weight:600;transition:background .15s,transform .15s;display:inline-flex;box-shadow:0 6px 16px -6px #2e66408c}.btn-primary svg{width:16px;height:16px}.btn-primary:hover{background:var(--green-deep)}.btn-primary:active{transform:scale(.97)}.btn-block{justify-content:center;width:100%;padding:13px}.btn-generate{justify-content:center;width:100%;margin-top:2px;padding:13px}.btn-generate.is-loading{opacity:.7;pointer-events:none}.item-list,.alert-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.item{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-card);animation:.3s both rise;animation-delay:calc(var(--i) * 35ms);align-items:center;gap:10px;padding:12px 14px;display:flex}.item-ic{background:var(--ic-bg,var(--green-soft));width:38px;height:38px;color:var(--ic-fg,var(--green-deep));border-radius:12px;flex:none;place-items:center;display:grid}.item-ic svg{width:20px;height:20px}.item-body{flex:1;min-width:0}.item-name{text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:14px;font-weight:600;overflow:hidden}.item-meta{color:var(--muted);margin:2px 0 0;font-size:11.5px}.pill{white-space:nowrap;border-radius:999px;flex:none;padding:5px 9px;font-size:11px;font-weight:600}.pill--fresh{background:var(--green-soft);color:var(--green-deep)}.pill--soon{background:var(--amber-soft);color:var(--amber)}.pill--expired{background:var(--red-soft);color:var(--red)}.threshold{border:none;margin:0 0 16px;padding:0}.threshold legend{color:var(--ink);padding:0 0 8px;font-size:12.5px;font-weight:600}.segmented{background:#ebece6;border-radius:13px;grid-template-columns:repeat(3,1fr);gap:4px;padding:4px;display:grid}.seg{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:10px;padding:8px 0;font-family:inherit;font-size:13px;font-weight:600;transition:background .15s,color .15s}.seg[aria-checked=true]{background:var(--surface);color:var(--ink);box-shadow:0 1px 3px #232a2424}.notifications-config{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-card);flex-direction:column;gap:12px;margin-bottom:20px;padding:12px 14px;display:flex}.toggle-option{cursor:pointer;align-items:flex-start;gap:10px;display:flex}.toggle-option input[type=checkbox]{accent-color:var(--green);width:16px;height:16px;margin-top:3px}.toggle-label{flex-direction:column;font-size:13px;display:flex}.toggle-label strong{font-weight:600}.toggle-label small{color:var(--muted);margin-top:2px;font-size:11.5px}.alerts-subhead{margin:0 0 10px;font-size:13.5px;font-weight:700}.alert{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-card);border-left:4px solid var(--alert-color,var(--amber));animation:.3s both rise;animation-delay:calc(var(--i) * 35ms);align-items:center;gap:12px;padding:13px 14px;display:flex}.alert-body{flex:1;min-width:0}.alert-title{margin:0;font-size:14px;font-weight:600}.alert-desc{color:var(--muted);margin:2px 0 0;font-size:12px}.picker{margin:4px 0 14px}.picker-label{margin:0 0 10px;font-size:13px;font-weight:600}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip-opt{border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer;border-radius:999px;padding:8px 13px;font-family:inherit;font-size:13px;font-weight:500;transition:background .15s,border-color .15s,transform .15s}.chip-opt:hover{border-color:var(--green)}.chip-opt:active{transform:scale(.96)}.chip-opt[aria-pressed=true]{background:var(--green);border-color:var(--green);color:#fff}.chip-opt.is-expiring{outline:2px solid var(--amber);outline-offset:2px}.chip-opt.is-expiring[aria-pressed=true]{background:var(--amber);border-color:var(--amber);outline-color:var(--amber)}.picker-hint{color:var(--muted);margin:10px 0 0;font-size:12px}.recipe-card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-card);margin-top:16px;padding:18px;animation:.35s both rise}.recipe-card h3{letter-spacing:-.01em;margin:10px 0 6px;font-size:18px;font-weight:700}.recipe-stats{color:var(--muted);margin:0;font-size:12.5px}.recipe-priority{background:var(--green-soft);color:var(--green-deep);border-radius:10px;margin:10px 0 0;padding:9px 11px;font-size:12.5px;line-height:1.45}.recipe-card h4{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:18px 0 8px;font-size:13px;font-weight:700}.recipe-ingredients,.recipe-steps{margin:0;padding-left:0;list-style:none}.recipe-ingredients li{align-items:baseline;gap:8px;padding:6px 0;font-size:13.5px;display:flex}.recipe-ingredients li:before{content:"";background:var(--green);border-radius:50%;flex:none;width:6px;height:6px;transform:translateY(-1px)}.recipe-steps{counter-reset:step}.recipe-steps li{counter-increment:step;padding:0 0 10px 30px;font-size:13.5px;line-height:1.55;position:relative}.recipe-steps li:before{content:counter(step);background:var(--green-soft);width:21px;height:21px;color:var(--green-deep);border-radius:50%;place-items:center;font-size:11.5px;font-weight:700;display:grid;position:absolute;top:1px;left:0}.recipe-note{border-top:1px solid var(--line);color:var(--muted);margin:14px 0 0;padding-top:12px;font-size:12px;line-height:1.5}.empty-state{text-align:center;border:1.5px dashed var(--line);border-radius:var(--radius);margin-top:18px;padding:26px 18px}.empty-state p{color:var(--muted);margin:4px 0;font-size:13px}.empty-state strong{color:var(--ink)}.tabbar{padding:8px 10px calc(10px + env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-top:1px solid var(--line);background:#ffffffeb;flex:none;grid-template-columns:repeat(4,1fr);display:grid}.head-actions{align-items:center;gap:6px;display:flex}.btn-secondary{border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer;border-radius:12px;flex:none;align-items:center;gap:5px;padding:9px 12px;font-family:inherit;font-size:13px;font-weight:600;transition:background .15s,border-color .15s,transform .15s;display:inline-flex}.btn-secondary svg{width:15px;height:15px}.btn-secondary:hover{border-color:var(--green);background:var(--screen)}.btn-secondary:active{transform:scale(.97)}.shopping-item{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-card);align-items:center;gap:12px;padding:12px 14px;transition:opacity .2s,background .2s;animation:.3s both rise;display:flex}.shopping-item.is-completed{opacity:.6;background:#f0f1ed}.shopping-item.is-completed .item-name{color:var(--muted);text-decoration:line-through}.shopping-checkbox{width:20px;height:20px;accent-color:var(--green);cursor:pointer}.tab{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:10px;flex-direction:column;align-items:center;gap:3px;padding:6px 0 4px;font-family:inherit;font-size:11px;font-weight:600;transition:color .15s;display:flex}.tab svg{width:22px;height:22px}.tab.is-active{color:var(--green-deep)}.sheet{z-index:40;flex-direction:column;justify-content:flex-end;display:flex;position:absolute;inset:0}.sheet[hidden]{display:none}.sheet-backdrop{background:#141a1673;animation:.2s both fade;position:absolute;inset:0}.sheet-card{padding:20px 20px calc(22px + env(safe-area-inset-bottom));background:var(--surface);border-radius:24px 24px 0 0;animation:.3s cubic-bezier(.16,1,.3,1) both sheet-up;position:relative}.sheet-head{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.sheet-head h3{margin:0;font-size:17px;font-weight:700}.field{margin-bottom:14px;display:block}.field>span{color:var(--muted);margin-bottom:6px;font-size:12.5px;font-weight:600;display:block}.field input,.field select{border:1px solid var(--line);width:100%;color:var(--ink);background:var(--screen);border-radius:12px;padding:12px 13px;font-family:inherit;font-size:14px;transition:border-color .15s,box-shadow .15s}.field input:focus,.field select:focus{border-color:var(--green);outline:none;box-shadow:0 0 0 3px #3a7d4f29}.field input[type=date]{-webkit-appearance:none}.form-error{color:var(--red);margin:0 0 12px;font-size:12.5px}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes sheet-up{0%{transform:translateY(100%)}to{transform:none}}:focus-visible{outline:2px solid var(--green);outline-offset:2px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-delay:0s!important}}@media (width<=640px){body{background:var(--screen)}.stage{justify-content:stretch;align-items:stretch;min-height:100dvh;padding:0}.phone{width:100%;height:100dvh;max-height:none;box-shadow:none;background:0 0;border-radius:0;padding:0}.phone-notch{display:none!important}.phone-screen{border-radius:0}.appbar{padding-top:calc(14px + env(safe-area-inset-top))}.auth-screen{padding-top:calc(24px + env(safe-area-inset-top))}}
