@font-face{font-family:OpenDyslexic;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/opendyslexic-latin-400-normal-nUhe5EwG.woff2) format("woff2"),url(/assets/opendyslexic-latin-400-normal-Cv3YY6GF.woff) format("woff")}@font-face{font-family:OpenDyslexic;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/opendyslexic-latin-700-normal-Bnmt45Ln.woff2) format("woff2"),url(/assets/opendyslexic-latin-700-normal-wYUJcbXi.woff) format("woff")}:root{--font-sora: "DM Sans", "Segoe UI", sans-serif;--font-oxanium: "Fraunces", Georgia, serif;--font-mono: "DM Sans", "Segoe UI", sans-serif;--font-lexend: "Lexend", "Segoe UI", sans-serif;--void: #f4efe6;--void-2: #ebe4d6;--panel: #fffdf8;--panel-solid: #fffdf8;--panel-2: #f7f1e6;--line: rgba(40, 32, 20, .1);--line-strong: rgba(40, 32, 20, .2);--cyan: #1f6b4a;--cyan-dim: #164f37;--amber: #c45c26;--mint: #2a8a5e;--rose: #c23b4a;--violet: #6b5a9b;--text: #1c1914;--muted: #5e564c;--faint: #8a8175;--shadow: 0 12px 32px rgba(50, 36, 16, .08);--radius: 20px;--nav-h: 76px;--font: "DM Sans", var(--font-lexend), "Segoe UI", sans-serif;--display: "Fraunces", Georgia, serif;--mono: "DM Sans", "Segoe UI", sans-serif}*{box-sizing:border-box}html,body{height:100%}html{color-scheme:light}body{margin:0;min-height:100dvh;font-family:var(--font);color:var(--text);background:var(--void);overflow:hidden}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer}a{color:var(--cyan)}.app-bg{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;background:radial-gradient(900px 480px at 8% -8%,rgba(232,168,110,.22),transparent 55%),radial-gradient(700px 420px at 110% 8%,rgba(47,122,84,.12),transparent 50%),var(--void)}.app-bg:before,.app-bg:after{display:none}.shell{position:relative;z-index:1;height:100dvh;display:grid;grid-template-areas:"top" "main" "nav";grid-template-columns:1fr;grid-template-rows:auto 1fr var(--nav-h)}.topbar{grid-area:top}.main{grid-area:main}.nav{grid-area:nav}.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:calc(10px + env(safe-area-inset-top)) 16px 10px;border-bottom:1px solid var(--line);background:#fffdf8db;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.brand{display:flex;align-items:center;gap:10px;min-width:0}.brand-mark{width:40px;height:40px;border-radius:12px;object-fit:cover;box-shadow:0 4px 12px #3224101f}.brand h1{margin:0;font-family:var(--display);font-size:20px;letter-spacing:0;font-weight:600}.brand p{margin:0;color:var(--muted);font-size:12px;letter-spacing:0;text-transform:none}.hud-chip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--panel);color:var(--muted);font-family:var(--font);font-size:12px;letter-spacing:0;padding:6px 10px;border-radius:999px;white-space:nowrap}.hud-chip .dot{width:7px;height:7px;border-radius:50%;background:var(--mint);box-shadow:none}.main{overflow:auto;padding:16px 16px calc(18px + env(safe-area-inset-bottom));-webkit-overflow-scrolling:touch}.nav{display:grid;grid-template-columns:repeat(6,1fr);border-top:1px solid var(--line);background:#fffdf8f0;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);padding-bottom:env(safe-area-inset-bottom);min-height:var(--nav-h)}.install-banner{position:fixed;z-index:20;left:12px;right:12px;bottom:calc(var(--nav-h) + 10px + env(safe-area-inset-bottom));display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:16px;border:1px solid var(--line);background:var(--panel);box-shadow:var(--shadow)}.install-banner p{margin:0;flex:1;font-size:13px;line-height:1.4;color:var(--text)}@media(display-mode:standalone){.install-banner{display:none}}.nav button{min-height:48px;border:0;background:transparent;color:var(--faint);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;font-size:11px;letter-spacing:0;text-transform:none;font-family:var(--font);font-weight:500;position:relative}.nav button svg{width:22px;height:22px}.nav button.active{color:var(--cyan);font-weight:700}.nav button.active svg{filter:none}.nav-dot{position:absolute;top:8px;right:18%;width:8px;height:8px;border-radius:50%;background:var(--amber);box-shadow:none}.panel{position:relative;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px}.panel:before,.panel:after{display:none}.kicker{font-family:var(--font);font-size:13px;letter-spacing:0;text-transform:none;font-weight:600;color:var(--cyan);margin:0 0 8px}.h2{font-family:var(--display);margin:0 0 8px;font-size:24px;letter-spacing:0;font-weight:600}.muted{color:var(--muted)}.faint{color:var(--faint)}.row{display:flex;align-items:center;justify-content:space-between;gap:12px}.stack{display:grid;gap:12px}.grid-2{display:grid;gap:12px;grid-template-columns:1fr 1fr}.grid-3{display:grid;gap:12px;grid-template-columns:1fr 1fr 1fr}.btn{border:1px solid var(--line-strong);background:var(--panel);color:var(--text);border-radius:14px;padding:12px 16px;min-height:48px;letter-spacing:0;font-weight:600;transition:transform .12s ease,box-shadow .12s ease,background .12s ease}.btn:hover{box-shadow:var(--shadow)}.btn:active{transform:translateY(1px)}.btn.primary{background:var(--cyan);color:#fffdf8;border-color:var(--cyan);font-weight:700}.btn.ghost{background:transparent}.btn.amber{background:linear-gradient(180deg,#ffc24d,#d48900);color:#1a1100;border-color:#ffd27a;font-weight:700}.btn.danger{border-color:#ff5d7a80;color:var(--rose);background:#ff5d7a14}.btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.btn.full{width:100%}.btn.icon{width:42px;min-height:42px;padding:0;display:grid;place-items:center}.field{display:grid;gap:6px}.field span{font-size:13px;letter-spacing:0;text-transform:none;color:var(--muted);font-family:var(--font);font-weight:600}.input,.textarea,.select{width:100%;background:#fff;border:1px solid var(--line-strong);border-radius:14px;padding:12px 13px;outline:none}.input:focus,.textarea:focus,.select:focus{border-color:var(--cyan);box-shadow:0 0 0 3px #1f6b4a29}.textarea{min-height:88px;resize:vertical}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{border:1px solid var(--line);background:var(--panel-2);color:var(--muted);border-radius:999px;padding:8px 12px;font-size:13px}.chip.on{color:#fffdf8;background:var(--cyan);border-color:var(--cyan);font-weight:700}.chip.willys.on{background:#ff4d4d;border-color:#ff8080;color:#1a0000}.chip.lidl.on{background:#3d7eff;border-color:#8ab4ff;color:#00102a}.chip.coop.on{background:#2fce73;border-color:#7aefaa;color:#00210d}.chip.ica.on{background:#ff3b4e;border-color:#ff8a95;color:#2a0004}.progress{height:8px;border-radius:999px;background:var(--void-2);overflow:hidden;border:0}.progress>i{display:block;height:100%;background:var(--cyan);box-shadow:none}.item{display:grid;grid-template-columns:42px 48px 1fr auto;gap:10px;align-items:center;padding:10px;border:1px solid var(--line);border-radius:16px;background:var(--panel)}.item-pic{width:48px;height:48px;display:grid;place-items:center;font-size:28px;background:var(--panel-2);border-radius:12px;border:1px solid var(--line)}.item.checked{opacity:.45}.item.checked .item-name{text-decoration:line-through}.check{width:42px;height:42px;border-radius:12px;border:1.5px solid var(--line-strong);background:#fff;display:grid;place-items:center;color:var(--cyan)}.item.checked .check{background:var(--cyan);border-color:var(--cyan);color:#fffdf8}.item-name{font-weight:600}.item-meta{display:flex;gap:8px;flex-wrap:wrap;margin-top:4px;font-size:12px;color:var(--muted)}.qty{display:flex;align-items:center;gap:4px}.qty button{width:32px;height:32px;border-radius:8px;border:1px solid var(--line);background:var(--panel-2)}.meal-card,.recipe-card,.offer-card{border:1px solid var(--line);border-radius:16px;background:var(--panel-2);padding:14px}.recipe-card h3,.offer-card h3,.meal-card h3{margin:4px 0 6px;font-family:var(--display);font-size:18px}.stars{color:var(--amber);letter-spacing:2px;font-size:16px}.price{color:var(--amber);font-family:var(--display);font-weight:700}.compare{color:var(--faint);text-decoration:line-through;margin-left:6px;font-size:12px}.tabs{display:flex;gap:6px;overflow:auto;padding-bottom:2px}.tab{border:1px solid var(--line);background:transparent;border-radius:999px;padding:8px 12px;color:var(--muted);white-space:nowrap}.tab.on{color:#fffdf8;background:var(--cyan);border-color:var(--cyan);font-weight:700}.hero-stat{display:grid;gap:4px}.hero-stat b{font-family:var(--display);font-size:28px;letter-spacing:.04em}.member-dot{width:10px;height:10px;border-radius:50%;display:inline-block;box-shadow:0 0 8px currentColor}.gate{min-height:100dvh;display:grid;place-items:center;padding:24px 16px;position:relative;z-index:1}.gate-card{width:min(460px,100%)}.logo-xl{width:88px;height:88px;border-radius:22px;display:block;margin:0 auto 16px;box-shadow:0 10px 28px #3224101f}.center{text-align:center}.toast{position:fixed;left:50%;bottom:calc(var(--nav-h) + 16px);transform:translate(-50%);background:var(--text);border:0;color:#fffdf8;padding:10px 14px;border-radius:12px;z-index:20;font-size:13px;box-shadow:var(--shadow)}.shop-bar{position:sticky;top:0;z-index:3;display:grid;grid-template-columns:1fr auto;gap:8px;padding-bottom:12px;background:linear-gradient(180deg,var(--void) 70%,transparent)}.empty{padding:28px 12px;text-align:center;color:var(--muted)}.modal-back{position:fixed;top:0;right:0;bottom:0;left:0;background:#281c0c59;z-index:30;display:grid;place-items:end center;padding:16px}.modal{width:min(640px,100%);max-height:min(86dvh,820px);overflow:auto;margin-bottom:calc(var(--nav-h) + 4px)}@media(min-width:980px){.shell{grid-template-areas:"top top" "nav main";grid-template-columns:232px 1fr;grid-template-rows:auto 1fr}.nav{grid-template-columns:1fr;grid-auto-rows:min-content;border-top:0;border-right:1px solid var(--line);padding:16px 12px;gap:6px}.nav button{flex-direction:row;justify-content:flex-start;gap:10px;padding:12px;border-radius:12px;font-size:13px}.nav button.active{background:#1f6b4a1a}.main{padding:24px 28px}.modal-back{place-items:center}.modal{margin-bottom:0}.grid-home{grid-template-columns:1.2fr .8fr}}.store-desk{display:grid;gap:12px}.store-console{border:1px solid var(--line);border-radius:16px;padding:14px;background:var(--panel)}.store-console h3{margin:4px 0 6px;font-family:var(--display);font-size:20px}.store-console.willys{border-color:#ff4d4d59}.store-console.lidl{border-color:#3d7eff66}.store-console.coop{border-color:#2fce7359}.store-console.ica{border-color:#ff3b4e61}.store-links{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px}.linkish{border:0;background:transparent;color:var(--cyan);padding:0;min-height:0;font-size:13px;text-decoration:underline;text-underline-offset:3px}.quick-add-dock{position:sticky;top:0;z-index:4;border-color:var(--line-strong);box-shadow:var(--shadow)}@media(min-width:720px){.store-desk{grid-template-columns:1fr 1fr}.visual-grid{grid-template-columns:repeat(4,1fr)}.crew{grid-template-columns:repeat(3,1fr)}}.you-chip{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line-strong);background:#1f6b4a1a;color:var(--text);border-radius:999px;padding:4px 10px 4px 4px;font-weight:700}.avatar-bubble{width:28px;height:28px;display:grid;place-items:center;border-radius:50%;background:var(--panel-2);font-size:16px}.avatar-pick{display:flex;flex-wrap:wrap;gap:8px}.avatar-btn{border:1px solid var(--line);background:var(--panel-2);border-radius:14px;min-width:72px;min-height:72px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;font-weight:700}.avatar-btn b{font-size:28px;font-weight:400}.avatar-btn.tiny{min-width:48px;min-height:48px;font-size:22px}.avatar-btn.on,.crew-card.you{border-color:var(--cyan);box-shadow:0 0 0 1px var(--cyan)}.visual-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:12px}.visual-tile{border:1px solid var(--line);background:var(--panel-2);border-radius:16px;min-height:96px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;font-weight:700;font-size:14px}.visual-tile .pic{font-size:34px;line-height:1}.visual-tile:active{transform:scale(.97)}.crew{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:12px}.crew-card{border:1px solid var(--line);background:var(--panel-2);border-radius:16px;padding:12px;display:grid;justify-items:center;gap:4px;text-align:center}.crew-card.on{border-color:var(--mint)}.crew-face{font-size:32px;line-height:1}.feed{list-style:none;margin:0;padding:0;display:grid;gap:10px}.feed li{display:grid;grid-template-columns:28px 1fr auto;gap:8px;align-items:center}.feed-face{font-size:20px}.feed em{color:var(--faint);font-style:normal;font-size:12px}.invite-url{word-break:break-all;font-family:var(--font);font-size:13px;color:var(--cyan);background:var(--panel-2);border:1px solid var(--line);border-radius:12px;padding:10px}html.easy{--font: var(--font-lexend), "Segoe UI", sans-serif;--display: var(--font-lexend), var(--font-oxanium), sans-serif}html.easy body{letter-spacing:.01em}html.easy .item-name{font-size:20px}html.easy .visual-tile{min-height:108px;font-size:16px}html.easy .nav button{font-size:11px}html.easy .input,html.easy .btn{font-size:17px;min-height:50px}html.dyslexia{--void: #f3ead6;--void-2: #efe3c4;--panel: rgba(255, 248, 232, .94);--panel-solid: #fff8e8;--panel-2: #f7edd4;--line: rgba(40, 28, 12, .2);--line-strong: rgba(40, 28, 12, .45);--cyan: #0b5f63;--cyan-dim: #0a4a4d;--amber: #9a5b00;--mint: #1a6b46;--rose: #9b1d38;--violet: #5a3d9b;--text: #1c1408;--muted: #4a3c2c;--faint: #6a5a46;--font: "OpenDyslexic", var(--font-lexend), "Segoe UI", sans-serif;--display: "OpenDyslexic", var(--font-lexend), sans-serif;--mono: "OpenDyslexic", ui-monospace, monospace;--shadow: 0 12px 28px rgba(80, 50, 10, .12)}html.dyslexia body{letter-spacing:.08em;word-spacing:.16em;line-height:1.75;font-size:18px}html.dyslexia .app-bg{background:#f3ead6}html.dyslexia .app-bg:before,html.dyslexia .app-bg:after{display:none}html.dyslexia em,html.dyslexia i:not(.dot):not(.nav-dot){font-style:normal}html.dyslexia .item-name{font-size:22px}html.dyslexia .h2{font-size:26px;letter-spacing:.02em}html.dyslexia .visual-tile{min-height:112px;font-size:17px}html.dyslexia .nav button{font-size:12px;letter-spacing:.04em;text-transform:none}html.dyslexia .input,html.dyslexia .btn,html.dyslexia .textarea{font-size:18px;min-height:52px;letter-spacing:.05em}html.dyslexia .chip{font-size:15px;padding:8px 12px}html.dyslexia .topbar,html.dyslexia .nav{background:#fff8e8eb;color:var(--text)}html.dyslexia .invite-url{background:#fff8e8;color:#0b5f63}html.dyslexia .brand h1{letter-spacing:.12em}.speak-btn{border:0;background:transparent;color:var(--cyan);width:36px;height:36px;min-height:36px;padding:0;display:inline-grid;place-items:center;border-radius:10px}.speak-btn svg{width:18px;height:18px}.speak-btn.inline{width:32px;height:32px;min-height:32px;vertical-align:middle;margin-left:6px}.item-name{display:flex;align-items:center;gap:4px}.chat-wrap{min-height:100%}.chat-log{display:flex;flex-direction:column;gap:10px;padding-bottom:8px}.bubble{max-width:88%;padding:10px 12px;border-radius:16px;border:1px solid var(--line);background:var(--panel)}.bubble p{margin:6px 0 0;line-height:1.5}.bubble.me{align-self:flex-end;background:#1f6b4a1f;border-color:#1f6b4a40}.bubble.them{align-self:flex-start}.bubble-meta{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted)}.bubble-face{font-size:18px}.chat-composer{position:sticky;bottom:0;display:grid;grid-template-columns:1fr auto;gap:8px;padding:8px 0 4px;background:linear-gradient(180deg,transparent,var(--void) 30%)}html.dyslexia .chat-composer{background:linear-gradient(180deg,transparent,#f3ead6 30%)}html.dyslexia .bubble{background:#fff8e8}html.dyslexia .bubble.me{background:#e7f4f0}.grid-home{display:grid;gap:12px}.spinner{width:16px;height:16px;border:2px solid rgba(31,107,74,.2);border-top-color:var(--cyan);border-radius:50%;animation:spin .8s linear infinite;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.spinner{animation:none}.btn{transition:none}}
