:root{color:#202a23;font-synthesis:none;--green:#15803d;--green-bright:#16a34a;--soft:#eef8ef;--orange:#c75a16;--border:#e3e9e1;--muted:#687469;background:#f6f8f5;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Arial,sans-serif;font-size:16px;line-height:1.5}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:wait;opacity:.58}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline-offset:3px;outline:3px solid #e3a344}h1,h2,h3,p{margin:0}h1{letter-spacing:-.035em;font-size:1.65rem;font-weight:700;line-height:1.3}h2{font-size:1.1rem;font-weight:650;line-height:1.4}h3{font-size:1rem;font-weight:600}p{overflow-wrap:anywhere}svg{flex-shrink:0}bdi{overflow-wrap:anywhere}input:not([type=radio]):not([type=checkbox]),select{width:100%;min-width:0;min-height:48px;color:inherit;background:#fff;border:1px solid #dce4da;border-radius:12px;padding:10px 13px;font-size:16px;display:block}input::placeholder{color:#869085}input[type=date]{min-width:0;max-width:100%}label{font-size:.9rem;font-weight:550;display:block}label>input,label>select,label>.language-label{margin-top:7px}input[type=checkbox],input[type=radio]{accent-color:var(--green);flex-shrink:0;width:21px;height:21px}input[type=checkbox]{border-radius:5px}select{cursor:pointer}button{border:0}button:disabled{cursor:not-allowed}progress{appearance:none;border:0;border-radius:9px;width:100%;height:7px;overflow:hidden}progress::-webkit-progress-bar{background:#d7ebd8}progress::-webkit-progress-value{background:var(--green-bright)}progress::-moz-progress-bar{background:var(--green-bright)}.app-main{max-width:760px;min-height:100dvh;padding-bottom:calc(90px + env(safe-area-inset-bottom));margin:0 auto}.content{flex-direction:column;gap:24px;padding:24px;display:flex}.page-header{border-bottom:1px solid var(--border);background:#fff;padding:18px 24px}.page-header-inner{align-items:center;gap:12px;min-height:44px;display:flex}.page-header h1{overflow-wrap:anywhere;flex:1;min-width:0;font-size:1.4rem}.page-header .button{flex-shrink:0}.card{border:1px solid var(--border);background:#fff;border-radius:20px;box-shadow:0 2px 3px #1d392604}.stack{flex-direction:column;gap:12px;display:flex}.button{text-align:center;border-radius:13px;justify-content:center;align-items:center;gap:9px;min-height:48px;padding:12px 19px;font-size:.94rem;font-weight:600;line-height:1.4;transition:background .15s;display:inline-flex}.button.primary{background:var(--green);color:#fff}.button.primary:hover{background:#116a32}.button.secondary{color:#226d38;background:#f1f8f0;border:1px solid #cde1c9}.button.orange{background:var(--orange);color:#fff}.button.danger{color:#aa3930;background:#fff3f1;border:1px solid #f2d4cf}.button.compact{padding-inline:13px}.wide{width:100%}.icon-button{color:#778477;background:0 0;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;min-width:44px;min-height:44px;padding:10px;display:inline-flex}.icon-button:hover{color:var(--green);background:#edf5ed}.text-button{color:var(--green);background:0 0;min-height:44px;padding:10px 6px;font-weight:600}.centered{text-align:center}.muted{color:var(--muted)}.small{font-size:.8rem}.footnote{color:#798578;font-size:.8rem}.lead{font-size:1.1rem}.optional{color:var(--muted);margin-inline-start:6px;font-size:.75rem;font-weight:400}.badge{border-radius:20px;align-items:center;width:fit-content;max-width:100%;padding:4px 9px;font-size:.69rem;font-weight:600;line-height:1.4;display:inline-flex}.success{color:#286d36;background:#eaf7e9}.warning{color:#955018;background:#fff0dc}.neutral{color:#626b60;background:#f0f1ee}.message{background:#edf4ec;border-radius:14px;align-items:flex-start;gap:10px;padding:15px 17px;font-size:.88rem;line-height:1.6;display:flex}.message.error{color:#a8352d;background:#fff0ed;border:1px solid #f3d6cf}.message p{margin-top:5px}.warning-message{color:#874e1c;background:#fff4e6}.row-between{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.loading{min-height:220px;color:var(--green);justify-content:center;align-items:center;gap:12px;display:flex}.spin{animation:1s linear infinite spin}.pulse{animation:1.8s ease-in-out infinite pulse}.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}.toast{top:16px;z-index:100;color:#246a30;background:#f2fff1;border:1px solid #bbd8bb;border-radius:14px;align-items:center;gap:10px;width:fit-content;max-width:calc(100% - 32px);margin:auto;padding:13px 18px;display:flex;position:fixed;inset-inline:16px;box-shadow:0 7px 22px #13331a20}.offline-banner{color:#81501a;text-align:center;background:#fff1db;padding:10px 20px;font-size:.85rem}.auth-shell{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:16px;max-width:460px;min-height:100dvh;margin:0 auto;padding:24px;display:flex}.auth-shell:before{content:"";z-index:-1;background:radial-gradient(at 15% 15%,#e4f4df 0,#0000 55%),radial-gradient(at 90% 95%,#fff0df 0,#0000 55%);position:fixed;inset:0}.auth-top{justify-content:flex-end;align-self:stretch;margin-bottom:16px;display:flex}.language-label{display:block}.language-label select{background:#ffffffb8;width:auto;min-width:130px}.brand-icon{color:#fff;background:linear-gradient(140deg,#22a74f,#66b263 65%,#dbab6b);border-radius:25px;place-items:center;width:84px;height:84px;display:grid;box-shadow:0 12px 30px #38844325}.auth-form{text-align:start;flex-direction:column;gap:19px;width:100%;margin:10px 0;padding:24px;display:flex}.auth-shell>.muted{max-width:350px;font-size:.95rem}.hero{color:#fff;background:linear-gradient(115deg,#21a651,#128644);border-radius:0 0 25px 25px;padding:30px 24px 24px}.hero-top{justify-content:space-between;align-items:center;gap:12px;display:flex}.hero h1{margin-top:7px;font-size:1.65rem}.eyebrow{color:#dcf6df;text-transform:capitalize;font-size:.77rem}.on-green{color:#fff}.on-green:hover{color:#fff;background:#ffffff20}.hero-stat{align-items:baseline;gap:10px;margin:22px 0;display:flex}.hero-stat>span:first-child{letter-spacing:-.05em;font-size:2.8rem;font-weight:650}.hero-stat>span:last-child{color:#daf1da;font-size:.85rem}.quick-actions{grid-template-columns:1fr 1fr;gap:12px;display:grid}.quick-actions a{color:#246f37;background:#fff;border-radius:15px;justify-content:center;align-items:center;gap:9px;min-height:64px;padding:17px 10px;font-size:.83rem;font-weight:600;display:flex}.section-title{justify-content:space-between;align-items:center;gap:12px;margin-bottom:15px;display:flex}.section-title h2{align-items:center;gap:9px;display:flex}.section-title h2 svg{color:#599763}.section-title>a{color:var(--green);align-items:center;gap:5px;min-height:44px;font-size:.85rem;display:flex}.stock-card{align-items:flex-start;gap:12px;padding:17px 14px 17px 17px;display:flex}.category-icon{color:#72856c;background:#f0f4ee;border-radius:13px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.category-icon.vegetables{color:#40985a;background:#e6f7eb}.category-icon.fruits{color:#d38431;background:#fff0df}.category-icon.grains{color:#b58c2e;background:#faf1d8}.category-icon.legumes{color:#9a794c;background:#eee5d9}.category-icon.meat{color:#be6662;background:#ffe9e8}.category-icon.dairy{color:#5786bb;background:#e6f0fd}.category-icon.spices{color:#9470b5;background:#f0e9fa}.stock-content{flex:1;min-width:0}.stock-content h3{margin:1px 0 5px}.stock-meta{color:#778075;flex-wrap:wrap;gap:7px 12px;font-size:.85rem;display:flex}.stock-meta strong{color:#53674e;font-weight:500}.stock-content>.small{margin-top:4px}.stock-content>.badge{margin-top:8px}.card-actions{flex-direction:column;flex-shrink:0;gap:0;margin-top:-6px;display:flex}.card-actions .icon-button{min-width:40px;min-height:40px}.meal-prompt{background:linear-gradient(120deg,#eaf5e7,#fff1df);border:1px solid #e1e9d9;border-radius:22px;flex-direction:column;align-items:flex-start;gap:15px;padding:25px;display:flex}.meal-prompt p{color:#6d7b63;margin-top:5px;font-size:.9rem}.empty{text-align:center;flex-direction:column;align-items:center;gap:13px;padding:38px 23px;display:flex}.empty-icon{color:#589361;background:#edf7e9;border-radius:22px;place-items:center;width:68px;height:68px;display:grid}.empty>p{max-width:350px;color:var(--muted);font-size:.9rem}.empty .button{margin-top:8px}.search-box{border:1px solid var(--border);background:#fff;border-radius:15px;align-items:center;gap:10px;padding-inline:14px;display:flex}.search-box svg{color:#87937f}.search-box input{background:0 0!important;border:0!important;padding-inline:0!important}.chips{scrollbar-width:thin;gap:8px;margin-top:-8px;padding-bottom:5px;display:flex;overflow:auto}.chips button{white-space:nowrap;border:1px solid var(--border);color:#66765f;background:#fff;border-radius:24px;flex-shrink:0;min-height:44px;padding:9px 16px;font-size:.83rem}.chips button.selected{background:var(--green);border-color:var(--green);color:#fff}.bottom-nav{bottom:0;z-index:40;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--border);max-width:760px;padding:7px 8px calc(7px + env(safe-area-inset-bottom));background:#ffffffed;grid-template-columns:repeat(4,1fr);margin:auto;display:grid;position:fixed;inset-inline:0;box-shadow:0 -4px 20px #244b2410}.bottom-nav a{text-align:center;color:#7b8577;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:4px;min-height:58px;padding:4px;font-size:.69rem;line-height:1.4;display:flex}.bottom-nav a.active{color:var(--green);background:#f0f8ee;font-weight:650}.bottom-nav a:hover{color:var(--green)}.form-stack{gap:18px}.form-card{flex-direction:column;gap:19px;padding:23px;display:flex}.form-card h2{align-items:center;gap:8px;display:flex}.quantity-fields{grid-template-columns:minmax(0,1fr) 110px;gap:12px;display:grid}.form-actions{gap:12px;display:flex}.ingredient-picker{min-width:0;position:relative}.picker-options{border:1px solid var(--border);background:#fff;border-radius:12px;margin-top:8px;padding:5px;position:relative;box-shadow:0 5px 15px #254b2510}.picker-results{max-height:250px;overflow:auto}.picker-results>button{text-align:start;background:#fff;border-radius:10px;align-items:center;gap:10px;width:100%;padding:9px;display:flex}.picker-results>button:hover{background:#f0f7ed}.picker-results small{color:var(--muted);margin-top:2px;font-size:.7rem;display:block}.create-option{color:var(--green);text-align:start;background:#edf7ed;border-radius:10px;flex-wrap:wrap;align-items:center;gap:8px;width:100%;padding:12px;font-size:.85rem;display:flex}.picker-options>.text-button{text-align:center;width:100%;font-size:.8rem}.mode-selector{flex-direction:column;gap:10px;display:flex}.mode-selector>label{border:1px solid var(--border);cursor:pointer;border-radius:14px;align-items:flex-start;gap:12px;padding:16px;font-weight:400;display:flex}.mode-selector>label.selected{background:#eff8ec;border-color:#9fc998}.mode-selector input{margin:2px 0}.mode-selector strong{font-size:.94rem;display:block}.mode-selector small{color:var(--muted);margin-top:5px;line-height:1.6;display:block}.recipe-controls{grid-template-columns:1fr 1.7fr;gap:14px;display:grid}.recipe-controls label{flex-direction:column;justify-content:space-between;font-size:.8rem;display:flex}.recipe-grid{grid-template-columns:1fr;gap:18px;display:grid}.recipe-card{overflow:hidden}.recipe-art{color:#96a568;background:linear-gradient(135deg,#edf4df,#f9ecd6);justify-content:center;align-items:center;height:155px;display:flex;position:relative}.recipe-art>.badge{inset-inline-end:14px;max-width:calc(100% - 28px);position:absolute;bottom:14px;box-shadow:0 2px 3px #1f44230b}.recipe-card-body{padding:18px;padding-inline-end:40px;position:relative}.recipe-card-body h2{margin-bottom:8px}.recipe-card-body p{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.recipe-card-body>svg{inset-inline-end:15px;color:#689459;position:absolute;top:24px}.recipe-detail-art{color:#7ea168;background:linear-gradient(120deg,#eaf5e7,#fff1df);border-radius:22px;place-items:center;height:165px;display:grid}.recipe-title{margin-top:-45px;z-index:1;margin-inline:12px}.recipe-title h1{overflow-wrap:anywhere;font-size:1.5rem}.recipe-photo figure{margin:0}.recipe-photo img{object-fit:contain;background:#f0f4eb;border-radius:14px;width:100%;max-height:420px;display:block}.recipe-photo figcaption{overflow-wrap:anywhere;margin-top:12px}.recipe-photo figcaption a{color:var(--green);text-decoration:underline}.recipe-facts{color:#6b7d60;flex-wrap:wrap;gap:20px;font-size:.9rem;display:flex}.recipe-facts span{align-items:center;gap:7px;display:flex}.recipe-ingredient{background:#fafcf8;border:1px solid #e7eae2;border-radius:13px;padding:14px}.recipe-ingredient.insufficient,.recipe-ingredient.missing,.recipe-ingredient.needs_check{background:#fffbf4;border-color:#f4e5cf}.recipe-ingredient .row-between{flex-wrap:wrap;font-size:.9rem}.quantity-summary{color:#6b775f;flex-direction:column;gap:3px;margin-top:8px;font-size:.8rem;display:flex}.quantity-summary strong{color:#ad642b;font-weight:600}.recipe-ingredient>p{color:#8a673d;margin-top:8px}.recipe-steps{flex-direction:column;gap:20px;margin:0;padding:0;list-style:none;display:flex}.recipe-steps li{align-items:flex-start;gap:13px;display:flex}.recipe-steps li>span{width:31px;height:31px;color:var(--green);background:#edf6e6;border-radius:50%;flex-shrink:0;place-items:center;font-size:.8rem;display:grid}.recipe-steps p{font-size:.92rem;line-height:1.8}.generation-loading{color:var(--green);flex-direction:column;justify-content:center;align-items:center;gap:18px;padding:30px;display:flex}.shopping-intro{justify-content:space-between;align-items:center;gap:12px;display:flex}.shopping-intro p{margin-top:5px;font-size:.85rem}.progress-card{color:#4b7044;background:#eaf5e7;border-radius:15px;padding:17px;font-size:.85rem}.progress-card progress{margin-top:12px;display:block}.shopping-group{padding:18px}.shopping-group h3{align-items:center;gap:10px;margin-bottom:8px;font-size:.88rem;display:flex}.shopping-group h3 .category-icon{border-radius:10px;width:34px;height:34px}.shopping-group h3 svg{width:18px}.shopping-row{border-top:1px solid #f0f2ed;align-items:center;gap:0;padding-block:9px;display:flex}.shopping-check{cursor:pointer;flex:1;align-items:center;gap:10px;min-width:0;min-height:48px;font-weight:500;display:flex}.shopping-check input{margin:0}.shopping-check span{overflow-wrap:anywhere;min-width:0}.shopping-check small{color:#87907e;margin-top:3px;font-size:.75rem;display:block}.shopping-row.is-checked .shopping-check span{color:#949a8e;text-decoration:line-through}.shopping-row .icon-button{padding:8px}.shopping-row .icon-button:first-of-type{margin-inline-start:4px}[dir=rtl] .directional{transform:scaleX(-1)}[dir=rtl],[dir=rtl] h1{letter-spacing:normal}[dir=rtl] .quantity-fields input{text-align:right;direction:ltr}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.45;transform:translateY(-4px)}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}@media (width>=600px){.hero{border-radius:25px;margin-top:20px;padding:35px}.app-main{padding-inline:20px}.page-header{border-radius:20px 20px 0 0;margin-top:20px}.content{padding:28px 12px}.bottom-nav{border-inline:1px solid var(--border);border-radius:18px 18px 0 0;max-width:720px}.stock-card{padding:18px}.card-actions{flex-direction:row;margin:0}.recipe-grid{grid-template-columns:1fr 1fr}.recipe-grid>.recipe-card:only-child{max-width:450px}.quick-actions a{justify-content:flex-start;padding-inline:22px}.auth-shell{padding-block:45px}.form-stack{width:100%;max-width:570px;margin:auto}}@media (width<=359px){.content{padding:18px 14px}.page-header{padding:14px}.hero{padding:25px 18px 20px}.stock-card{gap:9px;padding:13px 8px 13px 12px}.stock-card>.category-icon{width:36px;height:36px}.stock-content h3{font-size:.9rem}.card-actions .icon-button{min-width:36px;min-height:40px;padding:7px}.form-card{padding:17px}.quantity-fields{grid-template-columns:minmax(0,1fr) 95px}.shopping-group{padding:12px}.shopping-row .icon-button{min-width:38px;padding:7px}.quick-actions a{flex-direction:column;font-size:.78rem}.recipe-controls{grid-template-columns:1fr}.recipe-title{margin-inline:5px}.row-between{gap:7px}}
