:root{color-scheme:light;--primary:#a8df24;--primary-hover:#96ca18;--primary-soft:#eff9c8;--success:#139966;--mango:#ffb82e;--tomato:#ff6b4a;--berry:#7f63ff;--mint:#5ee2b6;--background:#f7f3e8;--background-accent:#fff0c7;--surface:#fffdf7;--surface-soft:#f4f9e6;--surface-strong:#e9f4d1;--text:#182116;--muted:#5f644f;--muted-strong:#484e3c;--danger:#e44f56;--border:#eadfc6;--border-strong:#d9c798;--shadow-sm:0 1px 2px rgba(57,42,13,.05),0 10px 28px rgba(57,42,13,.06);--shadow:0 22px 52px rgba(72,52,13,.12);--button-text:#17210d;--input-background:#fff;--nav-background:rgba(255,253,247,.9);--empty-background:rgba(255,253,247,.7);--empty-border:#d2bd7b;--error-background:#fff0f1;--error-text:#8f2431;--warning-background:#fff2ca;--warning-text:#664806;--progress-background:#dfe6dc;--modal-backdrop:rgba(17,30,22,.56);--focus:#52720d;--radius-sm:10px;--radius:16px;--radius-lg:22px}:root[data-theme=dark]{color-scheme:dark;--primary:#bdf14a;--primary-hover:#cdf96c;--primary-soft:#253617;--success:#5fd89f;--mango:#ffc452;--tomato:#ff8065;--berry:#a08cff;--mint:#76efc9;--background:#10130d;--background-accent:#1c2111;--surface:#181d13;--surface-soft:#222a18;--surface-strong:#2c381d;--text:#f3f6ec;--muted:#b5bda6;--muted-strong:#d0d8c3;--danger:#ff858c;--border:#344028;--border-strong:#53643d;--shadow-sm:0 1px 2px rgba(0,0,0,.16),0 10px 28px rgba(0,0,0,.12);--shadow:0 20px 52px rgba(0,0,0,.3);--button-text:#17210d;--input-background:#101713;--nav-background:rgba(21,29,23,.92);--empty-background:rgba(21,29,23,.65);--empty-border:#465449;--error-background:#35191d;--error-text:#ffb9c0;--warning-background:#352a12;--warning-text:#f5d678;--progress-background:#2b382e;--modal-backdrop:rgba(0,0,0,.68);--focus:#c5e84e}*{box-sizing:border-box}html{background:var(--background);color:var(--text);font-family:Avenir Next,Segoe UI Variable,Segoe UI,ui-sans-serif,system-ui,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}body,html{min-height:100%}body{min-width:320px;margin:0;background:radial-gradient(circle at 10% 0,color-mix(in srgb,var(--mango) 22%,transparent),transparent 24rem),radial-gradient(circle at 92% 8%,color-mix(in srgb,var(--primary) 22%,transparent),transparent 28rem),radial-gradient(circle at 76% 84%,color-mix(in srgb,var(--berry) 10%,transparent),transparent 24rem),var(--background)}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}:focus-visible{outline:3px solid color-mix(in srgb,var(--focus) 42%,transparent);outline-offset:3px}::-moz-selection{background:var(--primary);color:var(--button-text)}::selection{background:var(--primary);color:var(--button-text)}.page{display:grid;gap:clamp(18px,2.5vw,28px);animation:page-in .18s ease-out both}.page-header{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:14px 20px;padding-bottom:2px}.eyebrow{margin:0 0 7px;color:var(--muted);font-size:.75rem;font-weight:800;letter-spacing:.075em;line-height:1.2;text-transform:uppercase}h1,h2,h3,p{margin-top:0}h1,h2,h3{color:var(--text);letter-spacing:-.035em}h1{max-width:18ch;margin-bottom:0;font-size:clamp(2rem,6vw,3.3rem);font-weight:790;line-height:.98}h2{margin-bottom:12px;font-size:clamp(1.2rem,2.2vw,1.45rem);line-height:1.12}h3{margin-bottom:8px;font-size:1.02rem;line-height:1.2}.muted{color:var(--muted)}.grid{display:grid;gap:14px}.grid.two{grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr))}.grid.three{grid-template-columns:repeat(auto-fit,minmax(min(190px,100%),1fr))}.card{position:relative;overflow:hidden;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-sm);padding:clamp(16px,2.2vw,22px);min-height:80px}.card:after{content:"";position:absolute;inset:0;border-radius:inherit;box-shadow:inset 0 1px color-mix(in srgb,#fff 55%,transparent);pointer-events:none}.soft{background:var(--surface-soft)}.row{display:flex;align-items:center;justify-content:space-between;gap:12px}.row.wrap{flex-wrap:wrap}.stack{display:grid;gap:14px}.actions{display:flex;flex-wrap:wrap;gap:9px}.btn{display:inline-flex;min-height:44px;align-items:center;justify-content:center;gap:8px;border:1px solid color-mix(in srgb,var(--primary) 80%,var(--text));border-radius:999px;padding:0 16px;background:var(--primary);color:var(--button-text);font-size:.9rem;font-weight:800;line-height:1;white-space:nowrap;box-shadow:0 1px #ffffff80 inset,0 10px 20px color-mix(in srgb,var(--primary) 18%,transparent);transition:transform .15s ease,background-color .15s ease,border-color .15s ease,box-shadow .15s ease}.btn:hover{background:var(--primary-hover);box-shadow:0 6px 16px color-mix(in srgb,var(--primary) 20%,transparent)}.btn:active{transform:translateY(1px) scale(.985)}.btn.secondary{border-color:var(--border-strong);background:color-mix(in srgb,var(--surface) 82%,var(--mango) 18%);color:var(--text);box-shadow:none}.btn.ghost:hover,.btn.secondary:hover{background:var(--surface-soft);box-shadow:none}.btn.danger{border-color:color-mix(in srgb,var(--danger) 75%,var(--text));background:var(--danger);color:#fff8f8}.btn.ghost{border-color:transparent;background:transparent;color:var(--muted-strong);box-shadow:none}.field{display:grid;gap:7px}.field label{color:var(--muted-strong);font-size:.82rem;font-weight:760}.field input,.field select,.field textarea{width:100%;min-height:46px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--input-background);color:var(--text);padding:10px 12px;transition:border-color .15s ease,box-shadow .15s ease,background-color .15s ease}.field input:hover,.field select:hover,.field textarea:hover{border-color:var(--muted)}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--focus);outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--focus) 18%,transparent)}.field textarea{min-height:96px;resize:vertical}.error,.offline,.status,.success,.warning{border-radius:var(--radius-sm);padding:11px 13px;font-size:.9rem;font-weight:700}.error{border:1px solid color-mix(in srgb,var(--danger) 30%,transparent);background:var(--error-background);color:var(--error-text)}.success{border:1px solid color-mix(in srgb,var(--success) 28%,transparent);background:color-mix(in srgb,var(--success) 9%,var(--surface));color:var(--success)}.warning{border:1px solid color-mix(in srgb,var(--warning-text) 28%,transparent);background:var(--warning-background);color:var(--warning-text)}.danger-text{color:var(--danger)}.progress{overflow:hidden;height:10px;border-radius:999px;background:var(--progress-background)}.progress>span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--primary),var(--mango));transition:width .2s ease-out}.progress.danger>span{background:var(--danger)}.empty{display:grid;justify-items:center;border:1px dashed var(--empty-border);border-radius:var(--radius);background:radial-gradient(circle at 50% 0,color-mix(in srgb,var(--mango) 16%,transparent),transparent 14rem),var(--empty-background);padding:clamp(30px,6vw,54px) 22px;text-align:center}.empty:before{content:"";width:42px;height:42px;margin-bottom:16px;border:1px solid var(--border-strong);border-radius:50%;background:radial-gradient(circle,var(--primary) 0 22%,transparent 24%),var(--surface-soft)}.empty h2{margin-bottom:6px}.empty p{max-width:44ch;margin-bottom:18px}.pill{display:inline-flex;min-height:30px;align-items:center;gap:6px;border:1px solid var(--border);border-radius:999px;background:color-mix(in srgb,var(--surface-soft) 76%,var(--primary) 24%);padding:5px 10px;color:var(--muted-strong);font-size:.78rem;font-weight:750}.item-list{display:grid;gap:10px}.scrollable-item-list{max-height:min(420px,55vh);overflow-y:auto;padding-right:4px;scrollbar-gutter:stable}@media(max-width:560px){.scrollable-item-list{max-height:min(360px,50vh)}}.auth-page{position:relative;min-height:100dvh;display:grid;align-items:center;padding:clamp(16px,4vw,42px)}.auth-panel{width:min(1040px,100%);margin:0 auto;display:grid;grid-template-columns:1fr;overflow:hidden;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow)}.auth-panel>.card{display:grid;align-content:center;border:0;border-radius:0;box-shadow:none;padding:clamp(24px,6vw,56px)}.auth-brand{position:relative;display:grid;align-content:end;min-height:310px;overflow:hidden;background:linear-gradient(180deg,#0a180e08,#0a180ed1),url(../hero-grocery.svg) 50%/cover;color:#f7fbf5;padding:clamp(26px,6vw,56px)}.auth-panel h2{margin-bottom:10px;font-size:clamp(1.45rem,3vw,1.8rem)}.auth-brand:after{content:"";position:absolute;inset:18px;border:1px solid hsla(0,0%,100%,.22);border-radius:var(--radius);pointer-events:none}.auth-brand>div{position:relative;z-index:1}.auth-brand .eyebrow,.auth-brand h1{color:inherit}.auth-brand p{max-width:34rem;margin-bottom:0;color:#f7fbf5d6}.modal-backdrop{position:fixed;inset:0;z-index:30;display:grid;place-items:center;padding:18px;background:var(--modal-backdrop);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.modal{width:min(520px,100%);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);padding:clamp(20px,4vw,28px);box-shadow:var(--shadow)}@keyframes page-in{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}@media(min-width:840px){.auth-panel{grid-template-columns:1.08fr .92fr}.auth-brand{min-height:min(680px,calc(100dvh - 84px))}}@media(max-width:839px){.auth-brand{min-height:230px}}@media(max-width:560px){.page-header{align-items:stretch}.page-header>.actions,.page-header>.btn,.page-header>.header-actions{width:100%}.page-header>.actions .btn,.page-header>.btn,.page-header>.header-actions .btn{flex:1}.actions .btn{flex-grow:1}}@media(prefers-reduced-motion:reduce){*,:after,:before{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
