:root{--bg:#f6f5f1;--surface:#fff;--surface-2:#efeee9;--text:#1d1f24;--muted:#6b6f78;--line:#e3e1da;--accent:#3b5bdb;--accent-text:#fff;--accent-soft:#e5ebff;--danger:#c92a2a;--late:#d9480f;--ok:#2f9e44;--shadow:0 1px 2px #0000000d, 0 4px 16px #0000000f;--radius:14px;--tabbar-h:64px;--safe-b:env(safe-area-inset-bottom,0px);--safe-t:env(safe-area-inset-top,0px);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#16181d;--surface:#20232a;--surface-2:#2a2e36;--text:#eceef2;--muted:#9aa0ab;--line:#333842;--accent:#7c96ff;--accent-text:#0f1220;--accent-soft:#283152;--danger:#ff6b6b;--late:#ff922b;--ok:#69db7c;--shadow:0 1px 2px #0000004d, 0 4px 16px #00000040;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#16181d;--surface:#20232a;--surface-2:#2a2e36;--text:#eceef2;--muted:#9aa0ab;--line:#333842;--accent:#7c96ff;--accent-text:#0f1220;--accent-soft:#283152;--danger:#ff6b6b;--late:#ff922b;--ok:#69db7c;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overscroll-behavior-y:none;margin:0;font:16px/1.4 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}h1,h2,h3,p{margin:0}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.app{min-height:100dvh}.topbar{z-index:5;padding:calc(14px + var(--safe-t)) 16px 10px;background:color-mix(in srgb, var(--bg) 88%, transparent);-webkit-backdrop-filter:blur(12px);justify-content:space-between;align-items:flex-end;gap:12px;display:flex;position:sticky;top:0}.topbar h1{letter-spacing:-.02em;font-size:26px;font-weight:750}.topbar-family{color:var(--muted);align-items:center;gap:6px;font-size:13px;display:flex}.demo-tag{background:var(--accent-soft);color:var(--accent);border-radius:6px;padding:0 6px;font-size:11px;font-weight:600}.me-btn{background:0 0;border:0;border-radius:50%;padding:2px}.me-btn.on{box-shadow:0 0 0 2px var(--accent)}.content{max-width:640px;padding:4px 16px calc(var(--tabbar-h) + var(--safe-b) + 88px);margin:0 auto}.home-tabs{background:var(--surface-2);border-radius:14px;gap:4px;margin-bottom:12px;padding:4px;display:flex}.home-tab{min-height:40px;color:var(--muted);white-space:nowrap;text-overflow:ellipsis;background:0 0;border:0;border-radius:10px;flex:1;padding:0 8px;font-size:14.5px;font-weight:650;overflow:hidden}.home-tab.on{background:var(--surface);color:var(--text);box-shadow:var(--shadow)}.content.slide-left{animation:.22s ease-out slide-from-right}.content.slide-right{animation:.22s ease-out slide-from-left}@keyframes slide-from-right{0%{opacity:0;transform:translate(28%)}}@keyframes slide-from-left{0%{opacity:0;transform:translate(-28%)}}@media (prefers-reduced-motion:reduce){.content.slide-left,.content.slide-right,.sheet[open]{animation:none}}.app{overflow-x:clip}.tabbar{z-index:6;height:calc(var(--tabbar-h) + var(--safe-b));padding-bottom:var(--safe-b);background:var(--surface);border-top:1px solid var(--line);grid-template-columns:repeat(5,1fr);display:grid;position:fixed;inset:auto 0 0}.tab{color:var(--muted);background:0 0;border:0;flex-direction:column;justify-content:center;align-items:center;gap:3px;font-size:11.5px;font-weight:600;display:flex}.tab.on{color:var(--accent)}.splash{place-items:center;min-height:100dvh;display:grid}.splash img{animation:1.2s ease-in-out infinite pulse}@keyframes pulse{50%{opacity:.5;transform:scale(.95)}}.card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px}.stack{flex-direction:column;gap:14px;display:flex}.stack.tight{gap:8px}.muted{color:var(--muted)}.small{font-size:13px}.center{text-align:center;align-self:center}.center-actions{justify-content:center;margin:16px 0;display:flex}.btn{border:1px solid var(--line);background:var(--surface);white-space:nowrap;border-radius:12px;justify-content:center;align-items:center;gap:6px;min-height:44px;padding:0 16px;font-weight:600;display:inline-flex}.btn:disabled{opacity:.5;cursor:default}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.btn-danger-ghost{color:var(--danger);background:0 0;border-color:#0000;padding:0 8px}.btn-block{width:100%}.btn-small{border-radius:10px;min-height:34px;padding:0 12px;font-size:14px}.icon-btn{width:40px;height:40px;color:var(--text);background:0 0;border:0;border-radius:50%;flex:none;place-items:center;display:inline-grid}.icon-btn:active{background:var(--surface-2)}.icon-btn.small{width:34px;height:34px;color:var(--accent)}.link{color:var(--accent);background:0 0;border:0;align-items:center;gap:4px;padding:4px 0;font-size:14px;font-weight:600;text-decoration:none;display:inline-flex}.fab{right:max(16px,50vw - 304px);bottom:calc(var(--tabbar-h) + var(--safe-b) + 16px);z-index:4;background:var(--accent);width:58px;height:58px;color:var(--accent-text);border:0;border-radius:18px;place-items:center;display:grid;position:fixed;box-shadow:0 6px 20px #3b5bdb59}.avatar{color:#fff;letter-spacing:.02em;border-radius:50%;flex:none;place-items:center;font-weight:700;line-height:1;display:inline-grid}.avatar-empty{background:var(--surface-2);color:var(--muted)}.avatars{flex:none;display:flex}.avatars .avatar+.avatar{box-shadow:0 0 0 2px var(--surface);margin-left:-6px}.chips{flex-wrap:wrap;gap:8px;display:flex}.chips.filter{scrollbar-width:none;flex-wrap:nowrap;margin:0 -16px 12px;padding:2px 16px;overflow-x:auto}.chips.filter::-webkit-scrollbar{display:none}.chip{border:1px solid var(--line);background:var(--surface);white-space:nowrap;border-radius:999px;flex:none;align-items:center;gap:6px;min-height:36px;padding:0 14px;font-size:14px;font-weight:600;display:inline-flex}.chip:has(.avatar){padding-left:6px}.chip.on{background:var(--text);border-color:var(--text);color:var(--bg)}.chip-add{color:var(--accent);border-style:dashed}.count{background:var(--surface-2);min-width:20px;color:var(--muted);text-align:center;border-radius:999px;padding:0 6px;font-size:12px;font-weight:700;line-height:20px;display:inline-block}.chip.on .count{background:color-mix(in srgb, var(--bg) 25%, transparent);color:inherit}.tag{background:var(--surface-2);border-radius:6px;align-items:center;gap:3px;padding:0 6px;font-size:12px;font-weight:600;display:inline-flex}.empty{text-align:center;color:var(--muted);flex-direction:column;align-items:center;gap:6px;padding:40px 16px 24px;display:flex}.empty-title{color:var(--text);margin-top:4px;font-size:17px;font-weight:650}.empty-text{max-width:32ch;font-size:14px}.toast{left:16px;right:16px;bottom:calc(var(--tabbar-h) + var(--safe-b) + 16px);z-index:50;background:var(--text);max-width:520px;color:var(--bg);box-shadow:var(--shadow);border-radius:12px;margin:0 auto;padding:12px 16px;font-size:14px;position:fixed}.section{margin:18px 0}.section-head{justify-content:space-between;align-items:center;min-height:36px;margin-bottom:6px;display:flex}.section-head h3{align-items:center;gap:6px;font-size:15px;font-weight:700;display:flex}.section-head h3.late,.late{color:var(--late)}.rows{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.row{text-align:left;background:0 0;border:0;align-items:center;gap:12px;width:100%;min-height:56px;padding:10px 14px;display:flex}.rows>.row+.row{border-top:1px solid var(--line)}button.row:active,.as-button:active{background:var(--surface-2)}.row-main{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.as-button{text-align:left;background:0 0;border:0;justify-content:center;align-self:stretch;padding:0}.row-title{overflow-wrap:anywhere;font-weight:550}.row-sub{color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px;font-size:13px;display:flex}.row.done .row-title{color:var(--muted);text-decoration:line-through}.check{border:2px solid var(--line);background:var(--surface);color:#fff;border-radius:50%;flex:none;place-items:center;width:26px;height:26px;padding:0;display:grid}.check.on{background:var(--ok);border-color:var(--ok)}.item-row .check{border-radius:8px}.toolbar{align-items:center;gap:4px;margin-bottom:8px;display:flex}.toolbar-title{text-align:center;flex:1;font-size:17px;font-weight:700}.day-pills{grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:12px;display:grid}.day-pill{background:var(--surface);box-shadow:var(--shadow);border:0;border-radius:12px;flex-direction:column;align-items:center;gap:2px;padding:8px 0 6px;display:flex}.day-pill-name{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:11px;font-weight:600}.day-pill-num{font-size:17px;font-weight:700}.day-pill.is-today{background:var(--accent);color:var(--accent-text)}.day-pill.is-today .day-pill-name{color:inherit;opacity:.85}.dots{gap:3px;height:5px;display:flex}.dot{background:var(--accent);border-radius:50%;width:5px;height:5px}.day-pill.is-today .dot{background:var(--accent-text)}.agenda-day{margin:14px 0;scroll-margin-top:90px}.agenda-day.past{opacity:.6}.agenda-head{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.agenda-head h3{font-size:15px;font-weight:700}.agenda-head h3.is-today{color:var(--accent)}.agenda-free{color:var(--muted);padding:4px 2px 8px;font-size:14px}.event-row{padding-left:18px;position:relative}.event-row:before{content:"";background:var(--stripe,var(--accent));border-radius:0 4px 4px 0;width:4px;position:absolute;top:10px;bottom:10px;left:0}.event-time{width:62px;color:var(--muted);font-variant-numeric:tabular-nums;flex:none;font-size:13px;font-weight:650}.soon-day{margin-bottom:10px}.soon-label{color:var(--muted);margin:0 2px 4px;font-size:13px;font-weight:600}.quick-add{gap:8px;margin-bottom:14px;display:flex}.quick-add input{flex:1;min-width:0}.quick-add .btn-primary{width:48px;padding:0}.banner{background:var(--accent-soft);border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;padding:10px 12px 10px 14px;font-size:14px;font-weight:600;display:flex}.banner-actions{flex-wrap:wrap;gap:8px;width:100%;display:flex}.banner-actions select{border-radius:10px;flex:1;min-width:0;min-height:34px;padding:4px 10px;font-size:14px}.meal-days{flex-direction:column;gap:10px;display:flex}.meal-day{padding:10px 12px}.meal-day.is-today{box-shadow:0 0 0 2px var(--accent), var(--shadow)}.meal-day.past{opacity:.6}.meal-row{border-top:1px solid var(--line);min-height:48px;padding:8px 2px}.meal-slot{width:72px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;flex:none;font-size:12px;font-weight:700}.section .meal-row{border-top:0;padding:10px 14px}.plan-dinner{border:1.5px dashed var(--line);width:100%;min-height:44px;color:var(--accent);background:0 0;border-radius:10px;justify-content:center;align-items:center;gap:6px;margin-top:4px;font-size:14px;font-weight:600;display:flex}.to-list{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.to-list select{flex:1;width:auto;min-width:120px}.hello{margin:6px 0 4px}.hello-date{color:var(--muted);font-size:14px;font-weight:600}.hello h2{margin-top:2px;font-size:21px;font-weight:700}.shop-card{text-align:left;border:0;align-items:center;gap:12px;width:100%;margin-top:18px;font-weight:600;display:flex}.shop-card span{flex:1}.help p+p{margin-top:8px}.help p{font-size:14px}.swatches{flex-wrap:wrap;gap:10px;display:flex}.swatch{border:0;border-radius:50%;width:36px;height:36px;padding:0}.swatch.on{box-shadow:0 0 0 3px var(--surface), 0 0 0 5px var(--text)}.field{flex-direction:column;gap:6px;min-width:0;display:flex}.field-label{color:var(--muted);font-size:13px;font-weight:650}.field-hint{color:var(--muted);font-size:12.5px}input:not([type=checkbox]),select,textarea{border:1px solid var(--line);background:var(--surface);border-radius:12px;width:100%;min-height:46px;padding:10px 12px;font-size:16px}textarea{resize:vertical;min-height:64px}input:disabled{opacity:.6}input[type=date],input[type=time]{appearance:none}.toggle{align-items:center;gap:10px;font-weight:550;display:flex}.toggle input{width:22px;height:22px;accent-color:var(--accent)}.two{grid-template-columns:1fr 1fr;gap:10px;display:grid}.two.tight{gap:8px}@media (width<=380px){.two:not(.tight){grid-template-columns:1fr}}.form-error{color:var(--danger);font-size:14px}.form-notice{color:var(--ok);margin-bottom:8px;font-size:14px;font-weight:550}.sheet{background:var(--surface);width:100%;max-width:100%;max-height:92dvh;color:var(--text);border:0;border-radius:20px 20px 0 0;margin:auto 0 0;padding:0;box-shadow:0 -8px 40px #0003}.sheet[open]{animation:.22s ease-out slide-up}.sheet::backdrop{background:#0006}@keyframes slide-up{0%{opacity:.4;transform:translateY(40px)}}.sheet-inner{flex-direction:column;max-height:92dvh;display:flex}.sheet-head{justify-content:space-between;align-items:center;padding:14px 10px 6px 18px;display:flex}.sheet-head h2{font-size:19px;font-weight:700}.sheet-body{padding:6px 18px calc(18px + var(--safe-b));overflow-y:auto}.sheet-foot{bottom:calc(-18px - var(--safe-b));margin:4px -18px calc(-18px - var(--safe-b));padding:12px 18px calc(12px + var(--safe-b));background:var(--surface);border-top:1px solid var(--line);justify-content:space-between;gap:10px;display:flex;position:sticky}.sheet-foot .btn-primary{min-width:120px;margin-left:auto}@media (width>=700px){.sheet{border-radius:20px;max-width:520px;margin:auto}}.welcome{max-width:420px;padding:calc(40px + var(--safe-t)) 16px 40px;flex-direction:column;gap:16px;margin:0 auto;display:flex}.welcome h2{font-size:19px;font-weight:700}.brand{text-align:center;flex-direction:column;align-items:center;gap:8px;margin-bottom:8px;display:flex}.brand img{border-radius:14px}.brand h1{letter-spacing:-.02em;font-size:28px;font-weight:800}.brand p{color:var(--muted);max-width:28ch}.welcome-links{flex-wrap:wrap;justify-content:space-between;gap:8px;display:flex}
