.cmp{width:100%;max-width:640px}.cmp-field{background:var(--card);border:1px solid var(--line-strong);box-shadow:var(--sh-2);transition:border-color .2s, box-shadow .25s var(--ease-out);border-radius:26px;flex-direction:column;display:flex;position:relative}.cmp-field:focus-within{border-color:color-mix(in srgb, var(--rust) 70%, transparent);box-shadow:var(--sh-2), 0 0 0 4px color-mix(in srgb, var(--rust) 16%, transparent)}.cmp-field.is-live{border-color:var(--rust)}.cmp-text{resize:none;width:100%;min-height:56px;max-height:220px;color:var(--ink);font:inherit;background:0 0;border:0;padding:18px 20px 4px;font-size:17px;line-height:1.45;display:block;overflow-y:auto}.cmp-text:placeholder-shown{overflow-y:hidden}.cmp-text::placeholder{color:var(--mute);opacity:.9}.cmp-text:focus-visible{outline:none}.cmp-attach{flex-wrap:wrap;gap:8px;margin:0;padding:12px 14px 0;list-style:none;display:flex}.cmp-thumb{background:var(--paper-2);border:1px solid var(--line);width:64px;height:64px;box-shadow:var(--sh-1);animation:cmp-pop .28s var(--ease-spring) both;border-radius:14px;position:relative;overflow:hidden}.cmp-thumb img{object-fit:cover;width:100%;height:100%;display:block}.cmp-thumb-fallback{letter-spacing:.06em;width:100%;height:100%;color:var(--mute);background:linear-gradient(135deg, var(--art-from), var(--art-to));place-items:center;font-size:11px;font-weight:700;display:grid}.cmp-voice{background:var(--paper-2);border:1px solid var(--line);height:40px;color:var(--ink-2);animation:cmp-pop .28s var(--ease-spring) both;border-radius:999px;align-self:center;align-items:center;gap:8px;padding:0 6px 0 12px;font-size:14px;display:inline-flex}.cmp-voice>svg{fill:none;width:18px;height:18px;stroke:var(--rust);stroke-width:1.8px;stroke-linecap:round}.cmp-x{color:#fff;cursor:pointer;background:#140d09b8;border:0;border-radius:999px;place-items:center;width:24px;height:24px;padding:0;display:grid}.cmp-thumb .cmp-x{position:absolute;top:4px;right:4px}.cmp-voice .cmp-x{background:var(--line-strong);color:var(--ink)}.cmp-x svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;width:12px;height:12px}.cmp-x:focus-visible{outline:2px solid var(--rust);outline-offset:1px}.cmp-bar{justify-content:space-between;align-items:center;gap:8px;padding:4px 10px 10px;display:flex}.cmp-tools{align-items:center;gap:2px;min-width:0;display:flex}.cmp-icon{width:44px;height:44px;color:var(--mute);cursor:pointer;transition:background .18s, color .18s, transform .18s var(--ease-out);background:0 0;border:0;border-radius:999px;place-items:center;padding:0;display:grid}.cmp-icon svg{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;width:22px;height:22px}.cmp-icon svg .fill{fill:currentColor;stroke:none}.cmp-icon:hover:not(:disabled){background:var(--paper-2);color:var(--ink)}.cmp-icon:active:not(:disabled){transform:scale(.94)}.cmp-icon:focus-visible,.cmp-send:focus-visible{outline:2px solid var(--rust);outline-offset:2px}.cmp-icon:disabled{opacity:.4;cursor:default}.cmp-mic.is-on{color:#fff;background:var(--fill);animation:1.6s ease-in-out infinite cmp-breathe}.cmp-mic.is-on:hover:not(:disabled){color:#fff;background:var(--fill-dark)}.cmp-live{font-variant-numeric:tabular-nums;color:var(--rust);white-space:nowrap;align-items:center;gap:8px;min-width:0;margin-left:6px;font-size:14px;display:inline-flex}.cmp-interim{text-overflow:ellipsis;min-width:0;max-width:22ch;color:var(--mute);font-style:italic;overflow:hidden}.cmp-live i{background:currentColor;border-radius:999px;width:8px;height:8px;animation:1s ease-in-out infinite cmp-blink}.cmp-send{border:1px solid var(--fill-dark);background:linear-gradient(180deg, var(--fill-top), var(--fill));color:#fff;cursor:pointer;width:44px;height:44px;box-shadow:var(--sh-1);transition:transform .18s var(--ease-out), opacity .2s, background .2s;border-radius:999px;flex:none;place-items:center;padding:0;display:grid}.cmp-send svg{fill:none;stroke:currentColor;stroke-width:2.2px;stroke-linecap:round;stroke-linejoin:round;width:22px;height:22px}.cmp-send:hover:not(:disabled){background:linear-gradient(180deg, var(--fill), var(--fill-dark));transform:translateY(-1px)}.cmp-send:disabled{cursor:default;background:var(--line-strong);color:var(--card);box-shadow:none;border-color:#0000}.cmp-field.is-busy .cmp-send:disabled{background:linear-gradient(180deg, var(--fill-top), var(--fill));border-color:var(--fill-dark);color:#fff;cursor:progress}.cmp-spin{border:2px solid #ffffff59;border-top-color:#fff;border-radius:999px;width:18px;height:18px;animation:.8s linear infinite cmp-turn}.cmp-kitchen{margin:10px 0 0;padding:0 20px;font-size:14px;font-weight:600}.cmp-kitchen a{color:var(--rust);border-bottom:1px solid #0000;text-decoration:none;transition:border-color .15s}.cmp-kitchen a:hover,.cmp-kitchen a:focus-visible{border-bottom-color:currentColor}.cmp-note{color:var(--mute);margin:10px 0 0;padding:0 20px;font-size:12.5px;line-height:1.45}.cmp-status:empty{display:none}.cmp-msg{border-radius:var(--radius);animation:chip-in .3s var(--ease-out) both;margin:10px 0 0;padding:10px 16px;font-size:14.5px}.cmp-msg.is-info{background:var(--glass);border:1px solid var(--line-strong);color:var(--ink-2)}.cmp-msg.is-ok{background:var(--leaf-soft);border:1px solid var(--leaf-line)}.cmp-msg.is-ok a{color:var(--leaf);font-weight:600}.cmp-msg.is-err{background:var(--err-bg);border:1px solid var(--err-line);color:var(--err-ink)}[data-dropping=true]{position:relative}[data-dropping=true]:after{content:"Drop photos of your fridge, pantry or receipt";z-index:20;text-align:center;border:2px dashed var(--rust);border-radius:var(--r-xl);background:color-mix(in srgb, var(--paper) 86%, transparent);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);font-family:var(--serif);color:var(--ink);pointer-events:none;animation:chip-in .2s var(--ease-out) both;place-items:center;padding:24px;font-size:clamp(20px,3vw,28px);display:grid;position:absolute;inset:12px}@keyframes cmp-pop{0%{opacity:0;transform:scale(.85)}}@keyframes cmp-turn{to{transform:rotate(360deg)}}@keyframes cmp-blink{50%{opacity:.25}}@keyframes cmp-breathe{50%{box-shadow:0 0 0 6px color-mix(in srgb, var(--rust) 22%, transparent)}}@media (prefers-reduced-motion:reduce){.cmp-thumb,.cmp-voice,.cmp-mic.is-on,.cmp-live i,.cmp-msg,[data-dropping=true]:after{animation:none}}.cmp-field.is-scanning .cmp-thumb:after{content:"";pointer-events:none;background:linear-gradient(180deg, transparent 0%, color-mix(in srgb, var(--gold) 0%, transparent) 30%, color-mix(in srgb, var(--gold) 55%, transparent) 48%, #ffffffd9 50%, color-mix(in srgb, var(--gold) 55%, transparent) 52%, transparent 70%);mix-blend-mode:screen;background-size:100% 260%;animation:1.9s ease-in-out infinite cmp-scan;position:absolute;inset:0}.cmp-field.is-scanning .cmp-thumb:nth-child(2):after{animation-delay:.25s}.cmp-field.is-scanning .cmp-thumb:nth-child(3):after{animation-delay:.5s}.cmp-field.is-scanning .cmp-thumb:nth-child(4):after{animation-delay:.75s}.cmp-field.is-scanning .cmp-thumb{border-color:color-mix(in srgb, var(--gold) 55%, var(--line))}.cmp-field.is-scanning .cmp-send:disabled{animation:1.6s ease-in-out infinite cmp-breathe}.cmp-wait{border-radius:var(--radius);background:radial-gradient(120% 140% at 0% 0%, color-mix(in srgb, var(--gold) 14%, transparent) 0%, transparent 60%), var(--glass);border:1px solid var(--line-strong);animation:chip-in .3s var(--ease-out) both;align-items:flex-start;gap:14px;margin:10px 0 0;padding:14px 16px;display:flex}.cmp-wait-mark{width:40px;height:40px;color:var(--rust);background:color-mix(in srgb, var(--rust) 12%, var(--card));border-radius:999px;flex:none;place-items:center;display:grid;position:relative}.cmp-wait-mark:before{content:"";border-radius:inherit;border:2px solid color-mix(in srgb, var(--rust) 30%, transparent);border-top-color:var(--rust);animation:1.4s linear infinite cmp-turn;position:absolute;inset:-4px}.cmp-wait-mark svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:20px;height:20px}.cmp-wait-body{min-width:0;padding-top:2px}.cmp-wait-line{color:var(--ink);animation:cmp-line .35s var(--ease-out) both;margin:0;font-size:15.5px;font-weight:600;line-height:1.35}.cmp-wait-dots{gap:6px;margin:8px 0 0;padding:0;list-style:none;display:flex}.cmp-wait-dots li{background:var(--line-strong);width:18px;height:4px;transition:background .3s, width .3s var(--ease-out);border-radius:999px}.cmp-wait-dots li.is-done{background:var(--leaf)}.cmp-wait-dots li.is-now{background:var(--rust);width:30px}.cmp-wait-slow{color:var(--mute);animation:cmp-line .35s var(--ease-out) both;margin:8px 0 0;font-size:13.5px}@keyframes cmp-scan{0%{background-position:0 100%}to{background-position:0 0}}@keyframes cmp-line{0%{opacity:0;transform:translateY(4px)}}@media (prefers-reduced-motion:reduce){.cmp-field.is-scanning .cmp-thumb:after{display:none}.cmp-field.is-scanning .cmp-send:disabled,.cmp-wait,.cmp-wait-mark:before,.cmp-wait-line,.cmp-wait-slow{animation:none}.cmp-wait-mark:before{border-color:color-mix(in srgb, var(--rust) 45%, transparent)}.cmp-wait-dots li{transition:none}}@media (max-width:560px){.cmp-field{border-radius:22px}.cmp-text{min-height:74px;padding:16px 16px 4px}.cmp-bar{padding:2px 8px 8px 6px}.cmp-note{padding:0 6px}}
