@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-vietnamese-wght-normal-BUzh504Q.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-ext-wght-normal-CcLUaPy7.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-wght-normal-DLoelf7F.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--milk:#f5f7f8;--surface:#fff;--basalt:#17202c;--fjord:#5a6878;--mist:#e2e7ec;--lid:#2147d0;--lid-ink:#fff;--lid-soft:#e7edfd;--bilberry:#c2255c;--bilberry-soft:#fbe9f0;--toast-bg:#17202c;--toast-ink:#f5f7f8;--toast-action:#a9bbff;--backdrop:#0a0f1673;--shadow:0 1px 2px #17202c0f, 0 10px 28px #17202c1a;--mic-glow:#2147d057;--font:"Bricolage Grotesque Variable", ui-sans-serif, system-ui, sans-serif;--width:36rem;--gutter:16px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--milk:#0e141c;--surface:#161e2a;--basalt:#e8edf2;--fjord:#94a2b2;--mist:#253142;--lid:#7d96ff;--lid-ink:#0b1020;--lid-soft:#1c2747;--bilberry:#ff6e9c;--bilberry-soft:#3a1626;--toast-bg:#e8edf2;--toast-ink:#0e141c;--toast-action:#2147d0;--backdrop:#0009;--shadow:0 1px 2px #0000004d, 0 10px 28px #00000059;--mic-glow:#7d96ff40;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{background:var(--milk);color:var(--basalt);font-family:var(--font);font-optical-sizing:auto;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overscroll-behavior-y:none;margin:0;font-size:16px;line-height:1.45}button,input{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:default;opacity:.55}:focus-visible{outline:3px solid var(--lid);outline-offset:2px}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}h1,h2,h3,p{margin:0}.btn{letter-spacing:-.005em;border:0;border-radius:999px;justify-content:center;align-items:center;gap:8px;min-height:48px;padding:0 20px;font-size:16px;font-weight:620;transition:transform .12s,background-color .16s;display:inline-flex}.btn:active:not(:disabled){transform:scale(.97)}.btn-primary{background:var(--lid);color:var(--lid-ink)}.btn-quiet{background:var(--mist);color:var(--basalt)}.btn-danger{background:var(--bilberry-soft);color:var(--bilberry)}.btn-small{min-height:38px;padding:0 14px;font-size:15px}.btn-wide{width:100%}.icon-btn{width:44px;height:44px;color:var(--fjord);background:0 0;border:0;border-radius:50%;flex:none;place-items:center;padding:0;display:grid}.icon-btn:active{background:var(--mist)}.form{gap:16px;width:100%;display:grid}.field{border:0;gap:6px;min-width:0;margin:0;padding:0;display:grid}.field>span,.field>label,.field>legend{color:var(--fjord);padding:0;font-size:14px;font-weight:620}.field>legend{margin-bottom:6px}.field small{color:var(--fjord);font-size:13.5px}.field input,.invite-link{border:1.5px solid var(--mist);background:var(--milk);border-radius:12px;width:100%;height:50px;padding:0 14px;font-size:17px;transition:border-color .14s,box-shadow .14s}.field input:focus,.invite-link:focus{border-color:var(--lid);box-shadow:0 0 0 3px var(--lid-soft);outline:none}.form-error{background:var(--bilberry-soft);color:var(--bilberry);border-radius:12px;padding:10px 14px;font-size:15px;font-weight:520}.chips{flex-wrap:wrap;gap:8px;display:flex}.chips-tight{gap:6px}.chip{border:1.5px solid var(--mist);background:var(--surface);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;min-height:38px;padding:0 14px;font-size:15px;font-weight:520;display:inline-flex}.chip svg{color:var(--lid);margin-left:-4px}.chip.is-on{border-color:var(--lid);background:var(--lid);color:var(--lid-ink)}.splash{place-items:center;min-height:100dvh;animation:1.6s ease-in-out infinite breathe;display:grid}.gate{min-height:100dvh;padding:calc(env(safe-area-inset-top) + 32px) 20px calc(env(safe-area-inset-bottom) + 32px);place-items:center;display:grid}.gate-inner{flex-direction:column;align-items:flex-start;gap:14px;width:100%;max-width:24rem;display:flex}.gate-inner>svg{color:var(--fjord);margin-bottom:8px}.wordmark{letter-spacing:-.035em;max-width:7.5em;font-size:clamp(40px,12vw,52px);font-weight:780;line-height:.92}.gate-title{letter-spacing:-.025em;font-size:30px;font-weight:740;line-height:1.05}.gate-lead{max-width:34ch;color:var(--fjord);font-size:17px}.gate-inner .form{margin-top:14px}.gate-note{max-width:34ch;color:var(--fjord);margin-top:8px;font-size:14.5px}.app{max-width:var(--width);min-height:100dvh;padding-bottom:calc(env(safe-area-inset-bottom) + 132px);margin:0 auto}.top{padding:calc(env(safe-area-inset-top) + 22px) var(--gutter) 6px;justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.top-text{min-width:0}.list-title{letter-spacing:-.03em;overflow-wrap:anywhere;font-size:clamp(32px,9vw,42px);font-weight:760;line-height:1}.tally{color:var(--fjord);font-variant-numeric:tabular-nums;margin-top:6px;font-size:16px}.sync-note{color:var(--bilberry);margin-top:6px;font-size:14px;font-weight:560}.avatar{background:var(--mist);border:0;border-radius:50%;flex:none;place-items:center;width:44px;height:44px;margin-top:2px;font-size:18px;font-weight:680;display:grid}.list{padding-top:8px}.aisle{margin-top:22px}.aisle-name{padding:0 var(--gutter) 4px;letter-spacing:.01em;color:var(--fjord);font-size:14px;font-weight:660}.rows{margin:0;padding:0;list-style:none}.row{align-items:center;display:flex;position:relative}.row+.row:before{content:"";top:0;left:56px;right:var(--gutter);border-top:1px solid var(--mist);position:absolute}.row-main{min-width:0;min-height:58px;padding:10px 4px 10px var(--gutter);text-align:left;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;background:0 0;border:0;flex:1;align-items:center;gap:14px;transition:background-color .16s;display:flex}.row-main:active{background:color-mix(in srgb, var(--mist) 60%, transparent)}.tick{border:2px solid color-mix(in srgb, var(--fjord) 55%, transparent);width:26px;height:26px;color:var(--lid-ink);border-radius:50%;flex:none;place-items:center;transition:background-color .18s,border-color .18s;display:grid}.tick svg{transition:transform .26s cubic-bezier(.34,1.56,.64,1);transform:scale(0)}.row-name{overflow-wrap:anywhere;background-image:linear-gradient(currentColor,currentColor);background-position:0 58%;background-repeat:no-repeat;background-size:0% 1.5px;min-width:0;font-size:18px;font-weight:480;line-height:1.25;transition:background-size .28s,color .2s}.row-qty{background:var(--mist);font-variant-numeric:tabular-nums;color:var(--basalt);border-radius:999px;flex:none;margin-left:auto;padding:2px 10px;font-size:15px;font-weight:600}.row-edit{opacity:.75;margin-right:4px}.row.is-checked .tick{border-color:var(--lid);background:var(--lid)}.row.is-checked .tick svg{transform:scale(1)}.row.is-checked .row-name{color:var(--fjord);background-size:100% 1.5px}.row.is-checked .row-qty{color:var(--fjord);background:0 0}.row.is-fresh{animation:2.6s ease-out arrive}.cart{margin-top:34px}.cart-head{padding-right:var(--gutter);justify-content:space-between;align-items:center;display:flex}.cart-head .aisle-name{padding-bottom:0}.cart .row-main{min-height:50px}.cart .row-name{font-size:16.5px}.empty{text-align:center;flex-direction:column;align-items:center;gap:10px;padding:56px 32px 24px;display:flex}.empty svg{margin-bottom:10px}.empty h2{letter-spacing:-.02em;font-size:26px;font-weight:720}.empty p{max-width:30ch;color:var(--fjord)}.dock-wrap{z-index:10;padding:28px 12px calc(env(safe-area-inset-bottom) + 12px);background:linear-gradient(to bottom, transparent, var(--milk) 34px);pointer-events:none;flex-direction:column;align-items:center;display:flex;position:fixed;bottom:0;left:0;right:0}.dock-wrap>*{width:100%;max-width:calc(var(--width) - 8px);pointer-events:auto}.composer{align-items:center;gap:10px;display:flex}.type-in{flex:1;min-width:0;position:relative}.type-in input{border:1.5px solid var(--mist);background:var(--surface);width:100%;height:56px;box-shadow:var(--shadow);border-radius:28px;padding:0 54px 0 20px;font-size:17px}.type-in input::placeholder{color:var(--fjord);opacity:1}.type-in input:focus{border-color:var(--lid);outline:none}.type-add{background:var(--lid);width:44px;height:44px;color:var(--lid-ink);border:0;border-radius:50%;place-items:center;display:grid;position:absolute;top:6px;right:6px}.mic{background:var(--lid);width:68px;height:68px;color:var(--lid-ink);box-shadow:0 8px 22px var(--mic-glow);touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;border:0;border-radius:50%;flex:none;place-items:center;transition:background-color .2s,transform .16s,box-shadow .2s;display:grid;position:relative}.mic:active{transform:scale(.95)}.mic-rim{border:2px solid color-mix(in srgb, var(--lid-ink) 30%, transparent);border-radius:50%;position:absolute;inset:7px}.mic.is-recording{background:var(--bilberry);box-shadow:0 0 0 10px color-mix(in srgb, var(--bilberry) 18%, transparent);animation:1.4s ease-in-out infinite halo;transform:scale(1.06)}.mic.is-working .mic-rim{border-color:color-mix(in srgb, var(--lid-ink) 18%, transparent);border-top-color:var(--lid-ink);animation:.9s linear infinite spin}.mic.is-offline{background:var(--fjord);box-shadow:none}.suggest{background:var(--surface);max-height:34dvh;box-shadow:var(--shadow);border-radius:20px;margin-bottom:10px;padding:12px;animation:.16s ease-out rise;overflow-y:auto}.suggest-label{color:var(--fjord);margin:0 2px 8px;font-size:14px;font-weight:620}.voice{background:var(--surface);box-shadow:var(--shadow);border-radius:24px;margin-bottom:10px;padding:18px 20px;animation:.18s ease-out rise}.meter{align-items:center;gap:14px;display:flex}.meter-clock{font-variant-numeric:tabular-nums;letter-spacing:-.02em;min-width:2.6em;font-size:26px;font-weight:680}.meter-bars{flex:1;align-items:center;gap:3px;height:44px;display:flex}.meter-bars span{background:var(--bilberry);border-radius:3px;flex:1;height:100%;transition:transform 90ms linear;transform:scaleY(.08)}.voice-hint{color:var(--fjord);margin-top:10px;font-size:15px}.voice-hint.is-cancel{color:var(--bilberry);font-weight:650}.voice-actions{justify-content:flex-end;gap:8px;margin-top:12px;display:flex}.voice-quote{letter-spacing:-.01em;margin:0;font-size:19px;font-weight:500;line-height:1.35}.voice-working{color:var(--fjord);margin-top:8px;padding-bottom:10px;font-size:15px;position:relative}.voice-working:after{content:"";background:var(--lid);border-radius:3px;width:36%;height:3px;animation:1.1s ease-in-out infinite alternate sweep;position:absolute;bottom:0;left:0}.voice-added{gap:6px;margin:12px 0 0;padding:0;list-style:none;display:grid}.voice-added li{align-items:center;gap:8px;font-size:17px;font-weight:560;animation:.22s ease-out backwards rise;display:flex}.voice-added li:nth-child(2){animation-delay:60ms}.voice-added li:nth-child(3){animation-delay:.12s}.voice-added li:nth-child(n+4){animation-delay:.18s}.voice-added svg{color:var(--lid)}.voice-added .is-unchanged{color:var(--fjord);padding-left:24px;font-weight:480}.voice-added .is-changed svg{color:var(--basalt)}.voice-added .is-removed{color:var(--fjord)}.voice-added .is-removed svg{color:var(--bilberry)}.voice-added .is-removed .voice-line{text-decoration:line-through;text-decoration-thickness:1.5px}.voice-qty{color:var(--fjord);margin-left:auto;font-size:15px;font-weight:520}.voice-error{gap:8px;padding-right:40px;display:grid;position:relative}.voice-error p{font-size:16px}.voice-error .icon-btn{position:absolute;top:-8px;right:-10px}.toast{background:var(--toast-bg);min-height:52px;color:var(--toast-ink);box-shadow:var(--shadow);border-radius:16px;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;padding:8px 8px 8px 18px;font-size:15.5px;font-weight:500;animation:.18s ease-out rise;display:flex}.toast.is-warn{background:var(--bilberry);color:#fff}.toast-action{min-height:40px;color:var(--toast-action);background:0 0;border:0;border-radius:999px;flex:none;padding:0 14px;font-size:15.5px;font-weight:700}.sheet{width:100%;max-width:var(--width);background:var(--surface);max-height:90dvh;color:var(--basalt);border:0;border-radius:24px 24px 0 0;margin:auto auto 0;padding:0;overflow:hidden}.sheet[open]{animation:.22s cubic-bezier(.2,.9,.3,1) sheet-in}.sheet::backdrop{background:var(--backdrop)}.sheet-tall{height:92dvh}.sheet-body{height:100%;max-height:90dvh;padding:0 20px calc(env(safe-area-inset-bottom) + 24px);overscroll-behavior:contain;overflow-y:auto}.sheet-head{z-index:1;background:var(--surface);justify-content:space-between;align-items:center;margin:0 -8px 0 0;padding:16px 0 10px;display:flex;position:sticky;top:0}.sheet-head h2{letter-spacing:-.02em;font-size:22px;font-weight:720}.sheet-actions{justify-content:space-between;gap:10px;margin-top:6px;display:flex}.sheet-actions .btn-primary{flex:1;max-width:14rem}.edit-meta{color:var(--fjord);font-size:14px}.settings{gap:30px;padding-top:6px;display:grid}.set-group{justify-items:start;gap:14px;display:grid}.set-group>*{max-width:100%}.set-group h3{letter-spacing:-.01em;font-size:17px;font-weight:700}.set-line{overflow-wrap:anywhere;font-size:16px}.set-note{max-width:44ch;color:var(--fjord);font-size:15px}.set-buttons{flex-wrap:wrap;gap:10px;display:flex}.switch-row{cursor:pointer;justify-content:space-between;align-items:center;gap:16px;width:100%;min-height:44px;font-size:16px;display:flex}.switch-row input{appearance:none;background:var(--mist);cursor:pointer;border-radius:16px;flex:none;width:52px;height:32px;margin:0;transition:background-color .16s;position:relative}.switch-row input:after{content:"";background:var(--surface);border-radius:50%;width:26px;height:26px;transition:transform .16s;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #00000040}.switch-row input:checked{background:var(--lid)}.switch-row input:checked:after{transform:translate(20px)}.switch-row input:disabled{opacity:.6}.inline-edit{align-items:flex-end;gap:10px;width:100%;display:flex}.inline-edit .field{flex:1}.inline-edit .btn{min-height:50px}.members{gap:4px;width:100%;margin:0;padding:0;list-style:none;display:grid}.members li{align-items:center;gap:12px;min-height:52px;display:flex}.member-dot{background:var(--mist);border-radius:50%;flex:none;place-items:center;width:36px;height:36px;font-weight:680;display:grid}.member-name{flex-wrap:wrap;flex:1;align-items:baseline;gap:4px 8px;min-width:0;font-size:17px;font-weight:560;display:flex}.member-tag{color:var(--fjord);font-size:13.5px;font-weight:500}.invite{gap:10px;width:100%;display:grid}.invite-link{font-size:14.5px}.segmented{background:var(--mist);border-radius:12px;justify-self:start;padding:3px;display:inline-flex}.segmented button{min-width:6.5rem;min-height:38px;color:var(--fjord);background:0 0;border:0;border-radius:9px;padding:0 16px;font-size:15px;font-weight:600;transition:background-color .14s,color .14s}.segmented button[aria-pressed=true]{background:var(--surface);color:var(--basalt);box-shadow:0 1px 2px #17202c1f}.segmented-small button{min-width:3.4rem;min-height:40px;padding:0 10px}.qty-grid{grid-template-columns:repeat(8,minmax(0,1fr));gap:6px;margin-top:10px;display:grid}.qty-grid-weight{grid-template-columns:repeat(5,minmax(0,1fr))}.chip-num{font-variant-numeric:tabular-nums;justify-content:center;min-width:0;padding:0 4px}.qty-input{align-items:center;gap:10px;margin-top:4px;display:flex}.qty-input input{border:1.5px solid var(--mist);background:var(--milk);font-variant-numeric:tabular-nums;border-radius:12px;width:9rem;height:46px;padding:0 14px;font-size:17px}.qty-input input:focus{border-color:var(--lid);box-shadow:0 0 0 3px var(--lid-soft);outline:none}.qty-unit{color:var(--fjord);font-size:16px;font-weight:560}.rows.saying{margin-top:14px}.row.is-saying .row-main{cursor:default}.row.is-saying .tick{border-style:dashed;animation:2.4s linear infinite spin}.row.is-saying .row-name{color:var(--fjord)}.row.is-saying .row-qty{color:var(--fjord);background:0 0;font-size:14px;font-weight:520}.cats{gap:16px;padding-top:4px;display:grid}.cats-draft-note{background:var(--lid-soft);border-radius:12px;padding:10px 14px;font-size:15px;font-weight:560}.cats-list{counter-reset:none;margin:0;padding:0;list-style:none;display:grid}.cats-list li{gap:2px;padding:10px 0;display:grid}.cats-list li+li{border-top:1px solid var(--mist)}.cats-list li.is-new strong{color:var(--lid)}.cats-label{flex-wrap:wrap;align-items:baseline;gap:4px 8px;font-size:17px;display:flex}.cats-label strong{font-weight:680}.cats-badge{background:var(--lid);color:var(--lid-ink);vertical-align:1px;border-radius:999px;padding:1px 8px;font-size:12.5px;font-weight:650;display:inline-block}.cats-was{color:var(--fjord);font-size:14px;text-decoration:line-through}.cats-hint{color:var(--fjord);font-size:14.5px;line-height:1.4}.cats-hint.is-changed{color:var(--basalt)}.cats-removed{background:var(--bilberry-soft);border-radius:12px;gap:6px;margin:0;padding:10px 14px;font-size:15px;list-style:none;display:grid}.cats-removed s{color:var(--bilberry);font-weight:650}.cats-say{gap:10px;display:grid}.cats-say textarea{border:1.5px solid var(--mist);background:var(--milk);width:100%;min-height:76px;color:inherit;font:inherit;resize:vertical;border-radius:12px;padding:12px 14px;font-size:16.5px;line-height:1.4}.cats-say textarea:focus{border-color:var(--lid);box-shadow:0 0 0 3px var(--lid-soft);outline:none}.cats-say-row{flex-wrap:wrap;gap:8px;display:flex}.cats-mic{align-items:center;gap:8px;display:inline-flex}.cats-mic.is-recording{background:var(--bilberry-soft);color:var(--bilberry)}.cats-working{margin:0}@keyframes rise{0%{opacity:0;transform:translateY(8px)}}@keyframes sheet-in{0%{opacity:.4;transform:translateY(40px)}}@keyframes arrive{0%,35%{background:var(--lid-soft)}to{background:0 0}}@keyframes halo{50%{box-shadow:0 0 0 16px color-mix(in srgb, var(--bilberry) 10%, transparent)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes sweep{0%{left:0}to{left:64%}}@keyframes breathe{50%{opacity:.55;transform:scale(.96)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}}@media (min-width:600px){:root{--gutter:24px}.top{padding-top:40px}}
