@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-vietnamese-full-normal-7BpKI3vF.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:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-ext-full-normal-YHFkNujK.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:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-full-normal-CFFu7zhK.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}@font-face{font-family:Fraunces Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-vietnamese-full-italic-BHALq22K.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:Fraunces Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-ext-full-italic-B8-t4Nou.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:Fraunces Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-full-italic-D2JnYqd-.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}@font-face{font-family:DM Sans Variable;font-style:normal;font-display:swap;font-weight:100 1000;src:url(/assets/dm-sans-latin-ext-wght-normal-BOFOeGcA.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:DM Sans Variable;font-style:normal;font-display:swap;font-weight:100 1000;src:url(/assets/dm-sans-latin-wght-normal-Xz1IZZA0.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{--bg:#fbf7f0;--surface:#fff;--sunk:#f3ece2;--border:#e8dfd2;--field-border:#978c7b;--text:#1f1b16;--muted:#6b6258;--accent:#c75b1c;--accent-bright:#e07b2e;--accent-fill:#bf5719;--accent-strong:#a84a12;--accent-soft:#fce6d6;--on-accent:#fff;--in:#3b6443;--in-dot:#4f7f57;--in-soft:#eaf2ea;--late:#8a5a12;--late-soft:#f7ebd5;--takeaway:#2f5e8c;--takeaway-soft:#eaf1f8;--out:#6f6962;--danger:#b3261e;--av-1:#b8561d;--av-2:#4a5a6a;--av-3:#5f6b3a;--av-4:#8a5a12;--av-5:#6a4a7a;--av-6:#2f5e8c;--av-7:#7a3b52;--av-8:#3f6b5a;--danger-soft:#fbeae7;--whatsapp:#1f7a4d;--shadow:0 6px 16px #a84a1233;--font-display:"Fraunces Variable", Georgia, serif;--font-body:"DM Sans Variable", system-ui, sans-serif;font:100%/1.5 var(--font-body);color:var(--text);background:var(--bg);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}body{background:var(--bg);margin:0}#root{max-width:560px;margin:0 auto;padding:16px 16px 96px}h1,h2,h3{margin:0;line-height:1.2}h2{font-size:1.15rem}h3{font-size:1rem}p{margin:0}.muted{color:var(--muted)}.small{font-size:.85rem;font-weight:400}.center{text-align:center}.error{color:var(--danger);background:var(--danger-soft);border-radius:10px;padding:8px 12px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.stack{flex-direction:column;gap:16px;display:flex}.stack-tight{flex-direction:column;gap:6px;display:flex}.row{align-items:center;gap:8px;display:flex}.row.between{justify-content:space-between}.row.wrap{flex-wrap:wrap}.plain{margin:0;padding:0;list-style:none}.card{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:14px 16px}.card.highlight{border:1.5px solid var(--accent-bright)}.card.dashed{border-style:dashed}.eyebrow{letter-spacing:.07em;text-transform:uppercase;color:var(--muted);font-size:.75rem;font-weight:600}.eyebrow.accent{color:var(--accent-strong)}.eyebrow.ok{color:var(--in)}.page-title{flex-direction:column;gap:4px;display:flex}.kicker{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:.75rem}.tt{font-family:var(--font-display);font-variation-settings:"SOFT" 100, "WONK" 1;letter-spacing:-.01em;margin:0;font-size:2rem;font-weight:600;line-height:1.08}.tt em{color:var(--accent);font-style:italic;font-weight:500}.ul{display:inline-block;position:relative}.ul svg{width:calc(100% + 4px);height:10px;color:var(--accent-bright);position:absolute;bottom:-7px;left:-2px}.soft{font-family:var(--font-display);font-variation-settings:"SOFT" 100, "WONK" 1;font-weight:600}.field{color:var(--muted);flex-direction:column;flex:1;gap:4px;font-size:.9rem;display:flex}.field.inline{flex-direction:row;align-items:center;gap:8px}input,select,textarea{font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--field-border);border-radius:10px;width:100%;min-height:44px;padding:8px 12px}input::placeholder,textarea::placeholder{color:var(--muted);opacity:1}.field.inline select{width:auto}input.check{width:24px;height:24px;min-height:24px;accent-color:var(--accent);flex:none;margin:0}input.input-small{width:auto;min-height:34px;padding:2px 8px;font-size:.85rem}.btn{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);cursor:pointer;white-space:nowrap;border-radius:12px;justify-content:center;align-items:center;gap:6px;min-height:44px;padding:8px 14px;font-size:.95rem;font-weight:600;text-decoration:none;display:inline-flex}.btn:disabled{opacity:.5;cursor:default}.btn-primary{background:var(--accent-fill);border-color:var(--accent-fill);color:var(--on-accent)}.btn-dark{background:var(--text);border-color:var(--text);color:var(--bg)}.btn-whatsapp{background:var(--whatsapp);border-color:var(--whatsapp);color:var(--on-accent)}.btn-link{min-height:0;color:var(--accent-strong);background:0 0;border:none;padding:4px 0}.btn-link.danger{color:var(--danger)}.btn.danger:not(.btn-link){color:var(--danger);border-color:var(--danger)}.dialog-backdrop{z-index:100;background:#281e1466;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.dialog{width:100%;max-width:420px}.dialog-message{white-space:pre-line;margin:0}.dialog-actions{justify-content:flex-end}.btn-small{border-radius:999px;min-height:34px;padding:4px 12px;font-size:.85rem}.btn.selected{border-color:var(--accent-bright);color:var(--accent-strong)}.icon-btn{border:1px solid var(--border);background:var(--surface);width:44px;height:44px;color:var(--text);cursor:pointer;border-radius:50%;flex:none;justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.icon-btn.selected{border-color:var(--accent-bright);color:var(--accent-strong)}.fab{right:max(16px,50vw - 264px);bottom:calc(84px + env(safe-area-inset-bottom));background:var(--accent-fill);min-height:52px;color:var(--on-accent);font:600 1rem var(--font-body);box-shadow:var(--shadow);cursor:pointer;z-index:5;border:none;border-radius:999px;align-items:center;gap:8px;padding:0 20px;display:inline-flex;position:fixed}.segmented{background:var(--sunk);border-radius:999px;padding:3px;display:inline-flex}.seg{font:500 .85rem var(--font-body);color:var(--text);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:999px;flex:1;min-height:44px;padding:8px 16px}.seg.selected{background:var(--text);color:var(--bg);font-weight:600}.chip{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);cursor:pointer;border-radius:999px;align-items:center;gap:6px;min-height:44px;padding:6px 12px;font-size:.85rem;display:inline-flex}span.chip{cursor:default;background:var(--sunk);border-color:#0000;min-height:0;padding:2px 10px}.chip:disabled{cursor:default}.chip.selected{background:var(--text);border-color:var(--text);color:var(--bg);font-weight:600}.chip.danger{background:var(--accent-soft);color:var(--accent-strong);border-color:#0000;font-weight:600}.chip-x{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;min-width:24px;min-height:24px;padding:0 2px;display:inline-flex}.badge{color:var(--muted);background:var(--sunk);white-space:nowrap;border-radius:999px;padding:2px 10px;font-size:.78rem;font-weight:600}.badge.warn{color:var(--late);background:var(--late-soft)}.badge.danger,.badge.accent{color:var(--accent-strong);background:var(--accent-soft)}.topbar{align-items:center;gap:8px;margin-bottom:16px;display:flex}.wordmark{font-family:var(--font-display);font-variation-settings:"SOFT" 100, "WONK" 1;color:var(--accent);font-size:1.5rem;font-weight:600}.topbar select{width:auto;min-height:34px;padding:4px 8px}.topbar-end{margin-left:auto}.tabs{background:var(--surface);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom);z-index:6;justify-content:center;display:flex;position:fixed;bottom:0;left:0;right:0}.tab{max-width:112px;font:500 .7rem var(--font-body);color:var(--muted);cursor:pointer;background:0 0;border:none;flex-direction:column;flex:1;align-items:center;gap:3px;padding:10px 2px 8px;display:flex}.tab.active{color:var(--accent-strong);font-weight:700}.avatars{flex-wrap:wrap;gap:10px;display:flex}.av{width:40px;height:40px;font:600 .85rem var(--font-body);color:var(--on-accent);cursor:pointer;border:none;border-radius:50%;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex;position:relative}.av:disabled{cursor:default}.av.away{opacity:.45}.av.me{outline:2px solid var(--text);outline-offset:2px}.dot{border:2px solid var(--surface);border-radius:50%;width:15px;height:15px;position:absolute;bottom:-2px;right:-2px}.dot.in{background:var(--in-dot)}.dot.late{background:var(--late)}.dot.takeaway{background:var(--takeaway)}.dot.out{background:var(--out)}.dot.unconfirmed{background:var(--surface);border-color:var(--accent)}.status{flex-wrap:wrap;align-items:baseline;gap:6px;font-weight:600;display:inline-flex}.status.in{color:var(--in)}.status.late{color:var(--late)}.status.takeaway{color:var(--takeaway)}.status.out{color:var(--out);font-weight:500}.status.unconfirmed{color:var(--accent-strong)}.tag{color:var(--muted);background:var(--sunk);border-radius:999px;padding:0 8px;font-size:.72rem;font-weight:500}.tag.in{color:var(--in);background:var(--in-soft)}.tag.warn{color:var(--accent-strong);background:var(--accent-soft)}.note{color:var(--muted);flex-basis:100%;font-size:.85rem;font-weight:400}.overlay{z-index:10;background:#281e1466;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--surface);width:100%;max-width:560px;padding:20px 16px calc(20px + env(safe-area-inset-bottom));border-radius:20px 20px 0 0;max-height:90dvh;overflow-y:auto}.sheet:focus{outline:none}:focus-visible{outline:2px solid var(--accent-strong);outline-offset:2px}.av.me:focus-visible{outline:3px solid var(--accent-strong)}.choices{grid-template-columns:1fr 1fr;gap:8px;display:grid}.choice{font:inherit;color:var(--text);background:var(--bg);border:2px solid var(--border);cursor:pointer;border-radius:12px;min-height:48px;padding:12px 8px}.choice.selected{border-color:var(--accent);font-weight:600}.stepper{color:var(--text);align-items:center;gap:16px;font-size:1.1rem;display:flex}.sheet .row .btn{flex:1}textarea{resize:vertical;line-height:1.4}.sheet .sheet-actions{bottom:calc(-20px - env(safe-area-inset-bottom));background:var(--surface);padding:10px 0 calc(20px + env(safe-area-inset-bottom));margin-bottom:calc(-20px - env(safe-area-inset-bottom));position:sticky}.meal-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.meal-head .when{color:var(--muted);font-size:.85rem;font-weight:600}.highlight .meal-head .when{color:var(--accent-strong)}.meal-fold{font:inherit;color:inherit;cursor:pointer;text-align:left;background:0 0;border:none;width:100%;min-height:24px;padding:0}.meal-fold .when{flex:1}.meal-fold .chev{color:var(--muted);transition:transform .15s;display:inline-flex}.meal-fold .chev.open,.step-fold .chev.open{transform:rotate(90deg)}.step-fold{font:inherit;color:inherit;cursor:pointer;text-align:left;background:0 0;border:none;justify-content:space-between;align-items:center;gap:8px;width:100%;min-height:24px;padding:0;display:flex}.step-fold .chev{color:var(--muted);flex:none;transition:transform .15s;display:inline-flex}.item.step-closed{padding:0}.step-closed .step-fold{min-height:44px;padding:6px 0}.plan-label{font-size:1.6rem;line-height:1.12}.plan-items{flex-direction:column;gap:6px;display:flex}.plan-item{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.plan-item .chip-x{min-width:34px;min-height:34px;color:var(--muted)}.decision{flex-direction:column;gap:10px;display:flex}.banner{background:var(--accent-soft);color:var(--accent-strong);border-radius:12px;align-items:center;gap:8px;padding:10px 12px;font-weight:600;display:flex}.comments{border-top:1px dashed var(--border);padding-top:10px;font-size:.9rem}.comment{align-items:baseline;gap:6px;display:flex}.decision select{width:auto;max-width:100%}.week{flex-direction:column;gap:8px;display:flex}.week-day{grid-template-columns:56px minmax(0,1fr) minmax(0,1fr);align-items:stretch;gap:8px;display:grid}.week-day.is-today .week-date{color:var(--accent-strong);font-weight:700}.week-date{color:var(--muted);align-self:center;font-size:.85rem}.week-cell{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);text-align:left;cursor:pointer;border-radius:12px;flex-direction:column;align-items:flex-start;gap:2px;min-width:0;padding:8px 10px;display:flex}.week-cell:disabled{cursor:default}.week-cell.past{background:var(--bg)}.week-cell .status{font-size:.85rem}.week-cell .what{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:.72rem;overflow:hidden}.routine{grid-template-columns:minmax(72px,auto) 1fr 1fr;align-items:start;gap:8px;display:grid}.routine-day{text-transform:capitalize;padding-top:10px}.status-select.in{color:var(--in)}.status-select.late{color:var(--late)}.status-select.takeaway{color:var(--takeaway)}.status-select.out{color:var(--out)}.swatch{background:var(--muted);border:1px solid var(--border);border-radius:4px;flex:none;width:14px;height:14px}label.btn{align-self:flex-start}.item{border-top:1px solid var(--sunk);flex-direction:column;gap:6px;padding:10px 0;display:flex}.item:first-child{border-top:none}.item.row{flex-direction:row}.item-icon{background:var(--sunk);border-radius:10px;flex:none;justify-content:center;align-items:center;width:36px;height:36px;display:inline-flex}.done{color:var(--muted);text-decoration:line-through}.dish-name{font-size:1.1rem}.search{border:1px solid var(--border);background:var(--surface);color:var(--muted);border-radius:12px;align-items:center;gap:8px;padding:0 12px;display:flex}.search input{background:0 0;border:none;padding:0}.members{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.member{border-top:1px solid var(--sunk);flex-direction:column;gap:8px;padding:12px 0;display:flex}.member.inactive{opacity:.6}details>summary{cursor:pointer;min-height:24px;font-weight:600}details[open]>summary{margin-bottom:8px}.thumb.up.selected{color:var(--in);border-color:var(--in);background:var(--in-soft)}.thumb.down.selected{color:var(--accent-strong);border-color:var(--accent-bright);background:var(--accent-soft)}.bell{position:relative}.bell .count{background:var(--accent-fill);min-width:20px;height:20px;color:var(--on-accent);font:700 .7rem/20px var(--font-body);text-align:center;border-radius:999px;padding:0 5px;position:absolute;top:-4px;right:-4px}.item.unread{font-weight:600}.item.unread .item-icon{background:var(--accent-soft);color:var(--accent-strong)}.kind-veg{--k:#355c3c;--k-soft:#e8f1e6;--k-bright:#4f8a58}.kind-meat{--k:#9b2c24;--k-soft:#fae5e1;--k-bright:#c8483c}.kind-fish{--k:#2a5a87;--k-soft:#e5eef8;--k-bright:#3f7bb5}.kind-pasta{--k:#7a5608;--k-soft:#f7edd3;--k-bright:#b07d12}.kind-egg{--k:#6a3d7c;--k-soft:#f1e8f5;--k-bright:#9460ab}.kind-dot{background:var(--k-bright,var(--accent-bright));vertical-align:.05em;border-radius:50%;flex:none;width:10px;height:10px;margin-right:8px;display:inline-block}.week-cell .kind-dot{width:8px;height:8px;margin-right:5px}.dish-card[class*=kind-]{border-left:5px solid var(--k-bright)}.kind-tag{color:var(--k);background:var(--k-soft);border-radius:999px;align-self:flex-start;padding:2px 10px;font-size:.78rem;font-weight:600}.plan-box[class*=kind-]{background:var(--k-soft);border-left:4px solid var(--k-bright);border-radius:12px;padding:10px 12px}.plan-box[class*=kind-] .eyebrow{color:var(--k)}.chip[class*=kind-].selected{background:var(--k-soft);border-color:var(--k-bright);color:var(--k)}.push-block{border-top:1px dashed var(--border);padding-top:12px}.week-cell .lacks{color:var(--late);font-size:.72rem;font-weight:600}.plan-sheet .row .btn{flex:none}.history{flex-direction:column;gap:10px;display:flex}.history-head{font:inherit;color:inherit;cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:8px;min-height:24px;padding:0;display:flex}.history-head .eyebrow{flex:1}.history-head .chev{color:var(--muted);transition:transform .15s;display:inline-flex}.history-head .chev.open{transform:rotate(90deg)}.history-strip{justify-content:space-between;display:flex}.history-pair{gap:3px;display:inline-flex}.hdot{background:var(--k-bright,var(--accent-bright));border-radius:50%;width:12px;height:12px}.hdot.empty{border:1.5px solid var(--field-border);background:0 0}.hdot.ahead{background:var(--field-border);transform:scale(.5)}.history-list{flex-direction:column;display:flex}.history-day{border-top:1px solid var(--sunk);grid-template-columns:56px minmax(0,1fr);gap:8px;padding:8px 0;display:grid}.history-day:first-child{border-top:none}.history-date{color:var(--muted);padding-top:2px;font-size:.85rem}.history-meal{font:inherit;color:var(--text);text-align:left;cursor:pointer;background:0 0;border:none;flex-direction:column;align-items:flex-start;gap:1px;min-width:0;padding:2px 0;display:flex}.history-meal:disabled{cursor:default}.history-meal .what{color:var(--muted);font-size:.72rem}.history-meal .kind-dot{width:8px;height:8px;margin-right:6px}.history-rating{color:var(--muted);align-items:center;gap:4px;font-size:.75rem;display:inline-flex}.hint-line{background:var(--sunk);border-radius:10px;align-items:flex-start;gap:8px;padding:8px 10px;display:flex}.hint-mark{background:var(--accent-soft);width:20px;height:20px;color:var(--accent-strong);text-align:center;border-radius:50%;flex:none;font-weight:700;line-height:20px}.hint-line>span:nth-child(2){flex:1}.hint-more{font:inherit;color:var(--accent-strong);text-underline-offset:2px;cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}.hint-close{color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:0;flex:none;justify-content:center;align-items:center;min-width:24px;min-height:24px;padding:0 4px;display:inline-flex}.help-item{border-top:1px solid var(--border);padding-top:6px}.help-item>summary{font-weight:600}.help-item>p{margin-top:4px}.help a{color:var(--accent-strong)}.mine{background:var(--sunk);border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;display:flex}.balance summary{cursor:pointer}.balance-mark{margin-left:8px}.fold>summary>h2{margin:0;display:inline}@media (width<=19em){.btn,.seg,.badge,.week-cell .what{white-space:normal}.page-title{min-width:0}.tt{font-size:1.5rem}.topbar,.segmented,.field.inline{flex-wrap:wrap}.row:has(>.field){flex-wrap:wrap}.topbar>.muted{overflow-wrap:anywhere;min-width:0}select{max-width:100%}.tab{min-width:0;font-size:.6rem}}
