:root{--bg:#F6F5F2;--card:#FFFFFF;--ink:#1B1B1A;--ink2:#6B6B66;--line:#E9E7E1;--accent:#2E7A55;--accent-ink:#fff;--soft:#EFEEEA;--chip-l:88%;--chip-txt-l:30%;--sat:60%;--shadow:0 1px 2px rgba(20,20,10,.04),0 8px 24px rgba(20,20,10,.06)}[data-theme=dark]{--bg:#121213;--card:#1C1C1F;--ink:#F2F1EC;--ink2:#9A9A93;--line:#2A2A2E;--accent:#6FC49A;--accent-ink:#0B1F14;--soft:#26262A;--chip-l:24%;--chip-txt-l:78%;--sat:45%;--shadow:0 1px 2px rgba(0,0,0,.4),0 8px 24px rgba(0,0,0,.35)}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,-apple-system,system-ui,sans-serif;-webkit-font-smoothing:antialiased}:where(button){font:inherit;color:inherit;background:none;border:0;cursor:pointer;padding:0}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:10px}input,textarea,select{font:inherit;color:inherit}main{max-width:560px;margin:0 auto;padding:env(safe-area-inset-top) 18px calc(104px + env(safe-area-inset-bottom))}.screen{display:flex;flex-direction:column;gap:22px;padding-top:28px;animation:rise .28s ease}@keyframes rise{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}.eyebrow{margin:0;font-size:13px;font-weight:500;letter-spacing:.04em;text-transform:uppercase;color:var(--ink2)}.display{font-family:Fraunces,Georgia,serif;font-weight:500;font-size:72px;line-height:1;margin:4px 0 0;letter-spacing:-.02em;display:flex;align-items:baseline;gap:14px;font-variation-settings:"opsz" 144}.display-sub{font-family:Inter,sans-serif;font-size:20px;font-weight:500;color:var(--ink2);letter-spacing:0}.display-sm{font-family:Fraunces,Georgia,serif;font-weight:500;font-size:30px;margin:0;letter-spacing:-.01em}.hero{position:relative}.hero-sm{display:flex;align-items:center;justify-content:space-between;gap:10px}.muted{color:var(--ink2);font-weight:400}.label{margin:8px 0 0;font-size:13px;font-weight:500;color:var(--ink2)}.hint{font-size:12px;color:var(--ink2);margin:0;line-height:1.5}.center{text-align:center}.count{font-size:13px;font-weight:600;color:var(--ink2);background:var(--soft);padding:4px 10px;border-radius:99px;white-space:nowrap}.empty{color:var(--ink2);text-align:center;padding:28px 12px;margin:0;background:var(--card);border-radius:22px;border:1px dashed var(--line)}.card{background:var(--card);border-radius:22px;box-shadow:var(--shadow);padding:6px 8px}.section{display:flex;flex-direction:column;gap:10px}.section-head{display:flex;align-items:center;justify-content:space-between;padding:0 4px}.section-head h3{margin:0;font-size:15px;font-weight:600}.pill{position:absolute;right:0;top:8px;display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:600;padding:6px 10px;border-radius:99px}.pill-jain{background:hsl(140,var(--sat),var(--chip-l));color:hsl(140,50%,var(--chip-txt-l))}.timeline{padding:8px 10px}.tl-row{display:grid;grid-template-columns:44px 12px 1fr auto;align-items:start;gap:10px;padding:10px 4px;position:relative}.tl-row+.tl-row:before{content:"";position:absolute;left:49px;top:-14px;height:20px;border-left:1.5px dashed var(--line)}.tl-time{font-size:12px;font-variant-numeric:tabular-nums;color:var(--ink2);text-align:right;font-weight:500;padding-top:8px}.tl-dot{width:12px;height:12px;border-radius:50%;background:hsl(var(--h),var(--sat),var(--chip-l));border:2.5px solid hsl(var(--h),55%,50%);margin-top:8px}.tl-main{text-align:left;display:flex;flex-direction:column;gap:4px;min-width:0;padding:6px 8px;border-radius:14px;transition:background .15s}.tl-main:hover{background:var(--soft)}.tl-label{font-size:12px;color:var(--ink2);font-weight:500}.tl-items{display:flex;flex-wrap:wrap;gap:4px 6px;font-size:15px;font-weight:500;line-height:1.35}.tl-items .sep{color:var(--ink2);font-weight:400}.tl-items.muted{font-weight:400}.tl-actions{display:flex;gap:2px;padding-top:2px}.icon-btn{width:36px;height:36px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;color:var(--ink2);transition:background .15s,color .15s;flex:none}.icon-btn:hover{background:var(--soft);color:var(--ink)}.fav{fill:#e5484d;color:#e5484d}.nut{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;padding:10px 8px 6px}.nut div{display:flex;flex-direction:column;align-items:center;gap:2px}.nut b{font-size:16px;font-variant-numeric:tabular-nums;font-weight:600}.nut span{font-size:10.5px;color:var(--ink2);text-transform:uppercase;letter-spacing:.04em}.nut-note{font-size:11px;color:var(--ink2);padding:0 10px 8px;margin:0}.insight{display:flex;gap:10px;align-items:flex-start;padding:10px;font-size:14px;line-height:1.45}.insight+.insight{border-top:1px solid var(--line)}.insight svg{flex:none;margin-top:2px;color:var(--accent)}.ai-text{white-space:pre-wrap;font-size:14px;line-height:1.55;padding:12px;margin:0}.check-row{display:flex;align-items:center;gap:12px;padding:11px 10px;border-radius:14px;cursor:pointer;transition:opacity .2s}.check-row input{position:absolute;opacity:0;width:0;height:0}.check-row .box{width:22px;height:22px;border-radius:8px;border:1.5px solid var(--line);display:inline-flex;align-items:center;justify-content:center;color:var(--accent-ink);transition:all .15s;flex:none}.check-row.checked .box{background:var(--accent);border-color:var(--accent)}.check-row .box svg{opacity:0}.check-row.checked .box svg{opacity:1}.check-row.checked{opacity:.45;text-decoration:line-through}.check-row .grow{flex:1}.all-done{display:flex;align-items:center;gap:6px;color:var(--accent);font-weight:600;font-size:14px;padding:10px 10px 4px;margin:0}.quick-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.quick{background:var(--card);border-radius:20px;box-shadow:var(--shadow);padding:16px;display:flex;align-items:center;gap:10px;font-weight:500;font-size:15px;transition:transform .15s;text-align:left}.quick:active{transform:scale(.97)}.quick svg{color:var(--accent);flex:none}.chip-row{display:flex;flex-wrap:wrap;gap:8px}.chip-row.scroll{flex-wrap:nowrap;overflow-x:auto;padding-bottom:4px;margin:0 -18px;padding-left:18px;padding-right:18px;scrollbar-width:none}.chip{display:inline-flex;align-items:center;gap:4px;padding:9px 14px;border-radius:99px;background:var(--card);box-shadow:var(--shadow);font-size:14px;font-weight:500;transition:all .15s;white-space:nowrap}.chip-sm{padding:7px 12px;font-size:13px}.chip-on{background:var(--ink);color:var(--bg)}.chip-role{background:hsl(var(--h),var(--sat),var(--chip-l));color:hsl(var(--h),45%,var(--chip-txt-l));box-shadow:none}.toggle{width:46px;height:28px;border-radius:99px;background:var(--line);position:relative;transition:background .2s;flex:none}.toggle span{position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #00000040;transition:transform .2s}.toggle-on{background:var(--accent)}.toggle-on span{transform:translate(18px)}.stepper{display:inline-flex;align-items:center;background:var(--soft);border-radius:99px;padding:3px}.stepper button{width:30px;height:30px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:var(--card)}.stepper span{min-width:44px;text-align:center;font-weight:600;font-size:14px;padding:0 6px}.seg{display:inline-flex;background:var(--soft);border-radius:99px;padding:3px}.seg button{padding:7px 12px;border-radius:99px;font-size:13px;font-weight:500;display:inline-flex;align-items:center;gap:6px;color:var(--ink2)}.seg button.on{background:var(--card);color:var(--ink);box-shadow:var(--shadow)}.row{display:flex;align-items:center;justify-content:space-between;padding:12px 10px;gap:12px;font-size:15px;font-weight:500}.row+.row{border-top:1px solid var(--line)}.row-wrap{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:8px}.toggle-row{background:var(--card);border-radius:18px;box-shadow:var(--shadow);margin-top:8px;cursor:pointer}.toggle-row span{display:inline-flex;align-items:center;gap:8px}.search,.add-row{display:flex;align-items:center;gap:10px;background:var(--card);border-radius:16px;box-shadow:var(--shadow);padding:12px 14px;color:var(--ink2)}.search input,.add-row input{flex:1;border:0;background:none;font-size:16px;min-width:0;color:var(--ink)}.add-row.inset{box-shadow:none;background:var(--soft);margin:6px 4px 2px}.input{width:100%;border:1.5px solid var(--line);background:var(--card);border-radius:14px;padding:12px 14px;font-size:16px;resize:none;min-width:0}.input.big{font-size:19px;font-weight:500;padding:14px 16px}.text-btn{color:var(--accent);font-weight:600;font-size:14px;padding:8px;align-self:center;display:inline-flex;align-items:center;gap:6px}.danger{color:#e5484d}.primary{background:var(--accent);color:var(--accent-ink);border-radius:18px;padding:16px;font-weight:600;font-size:16px;display:flex;align-items:center;justify-content:center;gap:8px;margin-top:8px;transition:transform .15s,opacity .15s}.primary:active{transform:scale(.98)}.primary:disabled{opacity:.4;cursor:default}.secondary{background:var(--soft);border-radius:16px;padding:13px 16px;font-weight:600;font-size:14px;display:inline-flex;align-items:center;justify-content:center;gap:8px;flex:1}.secondary:disabled{opacity:.5}.ai-btn{color:#7c3aed}[data-theme=dark] .ai-btn{color:#c4b5fd}.list{padding:4px}.dish-row{display:flex;align-items:center;gap:8px;padding:6px;width:100%;text-align:left;border-radius:16px}.dish-row+.dish-row{border-top:1px solid var(--line)}.dish-row.pick{padding:12px;transition:background .15s}.dish-row.pick:hover{background:var(--soft)}.dish-row.selected{color:var(--accent)}.dish-main{flex:1;display:flex;flex-direction:column;gap:2px;text-align:left;min-width:0;padding:8px 6px;border-radius:12px}.dish-name{font-size:15px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dish-meta{font-size:12px;color:var(--ink2)}.role-dot{width:8px;height:8px;border-radius:50%;background:hsl(var(--h),55%,55%);flex:none}.slot-items{display:flex;flex-wrap:wrap;gap:8px}.slot-items .chip{gap:6px}.slot-items .chip button{display:inline-flex;color:var(--ink2)}.cal-head{display:flex;align-items:center;justify-content:space-between}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.cal-w{text-align:center;font-size:11px;font-weight:600;color:var(--ink2);padding:4px 0 8px;text-transform:uppercase;letter-spacing:.04em}.cal-cell{background:var(--card);border-radius:14px;box-shadow:var(--shadow);min-height:82px;padding:6px 4px;display:flex;flex-direction:column;gap:3px;text-align:left;transition:transform .15s;position:relative;overflow:hidden}.cal-cell:active{transform:scale(.96)}.cal-cell.is-today{outline:2px solid var(--accent)}.cal-cell.is-jain:after{content:"";position:absolute;top:6px;right:6px;width:6px;height:6px;border-radius:50%;background:#39c668}.cal-n{font-size:12px;font-weight:600;color:var(--ink2);padding-left:2px}.is-today .cal-n{color:var(--accent)}.cal-chips{display:flex;flex-direction:column;gap:2px}.cal-chip{font-size:9.5px;font-weight:500;line-height:1.3;padding:2px 4px;border-radius:5px;background:hsl(var(--h),var(--sat),var(--chip-l));color:hsl(var(--h),45%,var(--chip-txt-l));overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (min-width:480px){.cal-chip{font-size:11px}.cal-cell{min-height:96px}}.mt-row{display:grid;grid-template-columns:12px 1fr 52px 84px auto;align-items:center;gap:10px;padding:10px 8px}.mt-row+.mt-row{border-top:1px solid var(--line)}.mt-name{border:0;background:none;font-size:16px;font-weight:500;min-width:0;padding:6px 4px;border-radius:8px}.mt-time{border:0;background:var(--soft);font-size:12px;text-align:center;padding:6px 4px;border-radius:8px;font-variant-numeric:tabular-nums}.mt-cat{border:0;background:var(--soft);font-size:12px;padding:6px 4px;border-radius:8px;text-transform:capitalize}.status{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:500;color:var(--ink2)}.status .dot{width:8px;height:8px;border-radius:50%;background:var(--line)}.status.ok .dot{background:var(--accent)}.status.err .dot{background:#e5484d}.status.busy .dot{background:#f5a524;animation:pulse 1s infinite}@keyframes pulse{50%{opacity:.3}}.fab{position:fixed;right:max(18px,calc(50% - 262px));bottom:calc(92px + env(safe-area-inset-bottom));width:56px;height:56px;border-radius:20px;background:var(--accent);color:var(--accent-ink);display:flex;align-items:center;justify-content:center;box-shadow:0 8px 24px #2e7a5559;transition:transform .15s;z-index:5}.fab:active{transform:scale(.94)}.tabbar{position:fixed;left:50%;transform:translate(-50%);bottom:calc(14px + env(safe-area-inset-bottom));width:calc(100% - 24px);max-width:520px;display:flex;background:var(--card);border-radius:26px;box-shadow:var(--shadow);padding:8px 6px;z-index:10;border:1px solid var(--line)}.tabbar button{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 0;border-radius:18px;font-size:10.5px;font-weight:500;color:var(--ink2);transition:color .15s}.tabbar button.on{color:var(--accent)}.sheet-wrap{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;pointer-events:none}.sheet-wrap.open{pointer-events:auto}.scrim{position:absolute;top:0;right:0;bottom:0;left:0;background:#00000059;opacity:0;transition:opacity .25s}.open .scrim{opacity:1}.sheet{position:absolute;left:50%;bottom:0;transform:translate(-50%,100%);width:100%;max-width:560px;max-height:90vh;background:var(--bg);border-radius:28px 28px 0 0;transition:transform .32s cubic-bezier(.32,.72,0,1);display:flex;flex-direction:column;box-shadow:0 -10px 40px #0003}.open .sheet{transform:translate(-50%)}.sheet-handle{width:40px;height:5px;border-radius:99px;background:var(--line);margin:10px auto 0}.sheet-head{display:flex;align-items:center;justify-content:space-between;padding:10px 18px 6px}.sheet-head h2{margin:0;font-family:Fraunces,Georgia,serif;font-weight:500;font-size:22px}.sheet-body{overflow-y:auto;padding:6px 18px calc(28px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:12px}.toast{position:fixed;left:50%;bottom:calc(96px + env(safe-area-inset-bottom));transform:translate(-50%);background:var(--ink);color:var(--bg);padding:10px 18px;border-radius:99px;font-size:14px;font-weight:500;z-index:30;animation:rise .25s ease;box-shadow:var(--shadow);max-width:90%;text-align:center}.sheet-foot{padding:10px 18px calc(16px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--bg);display:flex;gap:10px}.sheet-foot .primary{margin-top:0;flex:1.4;padding:14px}.sheet-head .hint{margin-top:2px}.ing-input{display:flex;flex-direction:column;gap:6px}.ing-input .slot-items{border:1.5px solid var(--line);background:var(--card);border-radius:14px;padding:8px;min-height:52px;align-items:center}.ing-input input{flex:1;min-width:120px;border:0;background:none;font-size:16px;padding:6px 4px}.sugg{display:flex;flex-wrap:wrap;gap:6px}.sugg button{padding:7px 12px;border-radius:99px;background:var(--soft);font-size:13px;font-weight:500}.pick-group{display:flex;align-items:center;gap:8px;padding:12px 10px 4px;font-size:12px;font-weight:600;color:var(--ink2);text-transform:uppercase;letter-spacing:.05em}.pick-group .tl-dot{margin:0;width:9px;height:9px;border-width:2px}.dish-row.pick.on{background:hsl(var(--h),var(--sat),var(--chip-l))}.dish-row.pick.on .dish-meta{color:inherit;opacity:.7}.dish-row.pick .tick{width:26px;height:26px;border-radius:50%;border:1.5px solid var(--line);display:inline-flex;align-items:center;justify-content:center;flex:none;color:transparent}.dish-row.pick.on .tick{background:var(--ink);border-color:var(--ink);color:var(--bg)}.g-head{display:flex;align-items:center;justify-content:space-between;padding:0 4px}.g-head h3{margin:0;font-size:15px;font-weight:600;display:flex;align-items:center;gap:8px}.g-head .bar{height:4px;width:56px;border-radius:99px;background:var(--line);overflow:hidden}.g-head .bar i{display:block;height:100%;background:var(--accent);transition:width .25s}.check-row .why{display:block;font-size:11.5px;color:var(--ink2);font-weight:400;margin-top:1px}.check-row.checked .why{display:none}.pantry summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;padding:12px;font-weight:600;font-size:14px}.pantry summary::-webkit-details-marker{display:none}.pantry{background:var(--card);border-radius:22px;box-shadow:var(--shadow);padding:0 4px 4px}.note-row{display:flex;gap:8px;align-items:flex-start;background:hsl(45,80%,var(--chip-l));color:hsl(45,60%,var(--chip-txt-l));border-radius:16px;padding:12px 14px;font-size:14px;line-height:1.4}.note-row svg{flex:none;margin-top:1px}.toast button{margin-left:12px;color:inherit;font-weight:700;display:inline-flex;align-items:center;gap:4px;border-left:1px solid rgba(255,255,255,.3);padding-left:12px}.cal-cell.dots{min-height:52px;padding:6px 4px 8px;align-items:center;gap:6px;transition:transform .15s,box-shadow .15s}@media (min-width:480px){.cal-cell.dots{min-height:60px}}.cal-cell.is-sel{background:var(--ink);color:var(--bg)}.cal-cell.is-sel .cal-n{color:var(--bg)}.cal-cell.dots.is-today:not(.is-sel){outline:2px solid var(--accent)}.cal-cell.dots.is-jain:after{top:4px;right:4px}.cal-dots{display:flex;gap:3px}.cal-dots i{width:7px;height:7px;border-radius:50%;background:hsl(var(--h),60%,55%)}.cal-note{position:absolute;bottom:4px;right:4px;opacity:.6}.legend{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:11.5px;color:var(--ink2);padding:0 4px}.legend span{display:inline-flex;align-items:center;gap:5px}.legend i{width:7px;height:7px;border-radius:50%;background:hsl(var(--h),60%,55%)}.agenda{display:grid;grid-template-columns:52px 1fr;gap:6px;padding:8px 6px}.agenda+.agenda{border-top:1px solid var(--line)}.agenda-date{display:flex;flex-direction:column;align-items:center;gap:0;padding:6px 0;border-radius:14px;line-height:1.1;position:relative}.agenda-date b{font-family:Fraunces,Georgia,serif;font-size:24px;font-weight:500}.agenda-date span{font-size:11px;color:var(--ink2);text-transform:uppercase;letter-spacing:.04em}.agenda.is-today .agenda-date b{color:var(--accent)}.agenda-jain{color:#34b25e;margin-top:3px}.agenda-body{display:flex;flex-direction:column;gap:4px;min-width:0}.agenda-row{display:grid;grid-template-columns:10px 1fr auto;gap:8px;align-items:start}.agenda-row .tl-dot{width:10px;height:10px;margin-top:7px;border-width:2px}.agenda-main{text-align:left;display:flex;flex-direction:column;gap:1px;min-width:0;padding:4px 6px;border-radius:10px}.agenda-main:hover{background:var(--soft)}.agenda-main .tl-items{font-size:14px;font-weight:500;line-height:1.35}.agenda-label{font-size:11px;color:var(--ink2);font-weight:500}.agenda-note{font-size:12.5px;color:hsl(45,60%,var(--chip-txt-l));display:flex;align-items:center;gap:5px;padding:2px 6px}.agenda-empty{text-align:left;font-size:13.5px;color:var(--ink2);padding:8px 6px;border-radius:10px}.agenda-row .icon-btn{width:30px;height:30px}.glance{display:flex;flex-wrap:wrap;gap:6px 16px;margin:-6px 0 0;font-size:13px;color:var(--ink2)}.glance b{color:var(--ink);font-weight:600;font-variant-numeric:tabular-nums}.ichips{display:flex;flex-wrap:wrap;gap:5px}.ichip{display:inline-flex;align-items:center;padding:5px 9px;border-radius:9px;font-size:13.5px;font-weight:500;line-height:1.2;background:hsl(var(--h),var(--sat),var(--chip-l));color:hsl(var(--h),45%,var(--chip-txt-l))}.ichip.main{font-weight:600}.ichips.compact .ichip{padding:3px 7px;font-size:12px;border-radius:7px}.tl-row{align-items:start}.tl-main{gap:6px}.subhead{font-size:12px;font-weight:600;color:var(--ink2);text-transform:uppercase;letter-spacing:.05em;padding:10px 10px 2px}.tmr{display:flex;flex-direction:column;gap:6px;padding:8px 6px}.tmr-row{display:grid;grid-template-columns:10px 1fr;gap:8px;align-items:start;padding:4px}.tmr-row .tl-dot{width:10px;height:10px;margin-top:6px;border-width:2px}.tmr-label{font-size:11px;color:var(--ink2);font-weight:500;display:block;margin-bottom:3px}.sync-pill{position:absolute;right:0;top:8px;font-size:12px;font-weight:600;padding:6px 10px;border-radius:99px;background:#fde1dc;color:#9a2e2e}.pantry-tag{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--ink2);background:var(--soft);padding:2px 6px;border-radius:6px;margin-left:8px}.seg.mini button{padding:5px 10px;font-size:12px}.chip-rail{display:grid;grid-auto-flow:column;grid-template-rows:auto auto;gap:8px;overflow-x:auto;margin:0 -18px;padding:2px 18px 6px;scrollbar-width:none;justify-content:start}.chip-rail::-webkit-scrollbar{display:none}.picked{display:flex;flex-wrap:wrap;gap:8px;padding:10px 12px;background:var(--card);border-radius:18px;box-shadow:var(--shadow);position:sticky;top:0;z-index:2}.picked .chip{gap:6px;padding:7px 8px 7px 12px}.picked .chip button{display:inline-flex;align-items:center;opacity:.7;padding:2px}
