:root{--bg:#fff8f3;--bg-2:#fff0e7;--card:#fff;--card-2:#fff6f0;--line:#f1e1d8;--text:#3b2a31;--muted:#8f7c83;--faint:#c2b0b6;--accent:#ff6f91;--accent-2:#ffa36c;--accent-soft:#ffe4eb;--accent-ink:#fff;--good:#2fa874;--good-soft:#dcf4e8;--warn:#e39a0b;--warn-soft:#fff0d3;--danger:#e5484d;--danger-soft:#fde3e4;--sky:#4a9cf0;--sky-soft:#e2f0ff;--p1:#6ca8ff;--p2:#ff7eb6;--shadow:0 6px 22px #60304014, 0 1px 3px #6030400f;--shadow-lg:0 20px 60px #60304033;--radius:22px;--radius-sm:14px;--tab-h:66px;--safe-t:env(safe-area-inset-top,0px);--safe-b:env(safe-area-inset-bottom,0px);--font:"Nunito", ui-rounded, "SF Pro Rounded", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#1c171a;--bg-2:#241d21;--card:#2a2226;--card-2:#31282d;--line:#3e3338;--text:#f7edf0;--muted:#b6a3aa;--faint:#7a6970;--accent:#ff7e9d;--accent-2:#ffab78;--accent-soft:#4b2a35;--good:#48c690;--good-soft:#1d3a2e;--warn:#f2b13a;--warn-soft:#43351a;--danger:#ff6b6f;--danger-soft:#4a2427;--sky:#6db3ff;--sky-soft:#1d3147;--shadow:0 6px 22px #00000059, 0 1px 3px #0000004d;--shadow-lg:0 20px 60px #0000008c;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#1c171a;--bg-2:#241d21;--card:#2a2226;--card-2:#31282d;--line:#3e3338;--text:#f7edf0;--muted:#b6a3aa;--faint:#7a6970;--accent:#ff7e9d;--accent-2:#ffab78;--accent-soft:#4b2a35;--good:#48c690;--good-soft:#1d3a2e;--warn:#f2b13a;--warn-soft:#43351a;--danger:#ff6b6f;--danger-soft:#4a2427;--sky:#6db3ff;--sky-soft:#1d3147;--shadow:0 6px 22px #00000059, 0 1px 3px #0000004d;--shadow-lg:0 20px 60px #0000008c;--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%}html,body{background:var(--bg);color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;overscroll-behavior-y:none;margin:0;font-size:16px;line-height:1.4}body{min-height:100dvh}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation;-webkit-user-select:none;user-select:none;background:0 0;border:0;padding:0;transition:transform .12s,background-color .2s,opacity .2s,box-shadow .2s}button:active:not(:disabled){transform:scale(.95)}button:disabled{opacity:.5;cursor:default}a{color:var(--accent);-webkit-tap-highlight-color:transparent}img{max-width:100%;display:block}h1,h2,h3,p{margin:0}:focus-visible{outline:3px solid color-mix(in srgb, var(--accent) 55%, transparent);outline-offset:2px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.app{max-width:560px;min-height:100dvh;margin:0 auto;position:relative}.screen{padding:calc(var(--safe-t) + 14px) 16px calc(var(--tab-h) + var(--safe-b) + 28px);animation:.28s screen-in}.screen.no-tabs{padding-bottom:calc(var(--safe-b) + 28px)}@keyframes screen-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.top{align-items:center;gap:8px;min-height:44px;margin-bottom:14px;display:flex}.top h1{letter-spacing:-.02em;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:28px;font-weight:900;overflow:hidden}.top .sub{color:var(--muted);font-size:14px;font-weight:700}.top-actions{align-items:center;gap:6px;display:flex}.icon-btn{background:var(--card);width:42px;height:42px;box-shadow:var(--shadow);border-radius:50%;flex:none;place-items:center;font-size:20px;display:inline-grid}.icon-btn.flat{box-shadow:none;background:0 0}.icon-btn.small{width:34px;height:34px;font-size:16px}.btn{background:var(--card);min-height:46px;box-shadow:var(--shadow);white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:0 20px;font-size:16px;font-weight:800;display:inline-flex}.btn.primary{background:linear-gradient(135deg, var(--accent), var(--accent-2));color:var(--accent-ink);box-shadow:0 8px 22px color-mix(in srgb, var(--accent) 35%, transparent)}.btn.soft{background:var(--accent-soft);color:var(--accent);box-shadow:none}.btn.good{background:var(--good);color:#fff;box-shadow:0 8px 20px color-mix(in srgb, var(--good) 30%, transparent)}.btn.sky{background:var(--sky-soft);color:var(--sky);box-shadow:none}.btn.ghost{box-shadow:none;color:var(--muted);background:0 0}.btn.danger{background:var(--danger-soft);color:var(--danger);box-shadow:none}.btn.block{width:100%}.btn.small{min-height:36px;padding:0 14px;font-size:14px}.btn.tiny{min-height:30px;padding:0 11px;font-size:13px}.row{align-items:center;gap:10px;display:flex}.row.wrap{flex-wrap:wrap}.row.between{justify-content:space-between}.grow{flex:1;min-width:0}.stack{flex-direction:column;gap:12px;display:flex}.stack.tight{gap:6px}.muted{color:var(--muted)}.small{font-size:14px}.tiny{font-size:12px}.bold{font-weight:800}.center{text-align:center}.ellipsis{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px}.card.flat{box-shadow:none;border:1.5px solid var(--line)}.card.tap{cursor:pointer;transition:transform .12s}.card.tap:active{transform:scale(.98)}.section-title{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);align-items:center;gap:8px;margin:22px 4px 10px;font-size:13px;font-weight:900;display:flex}.section-title .grow+*{text-transform:none;letter-spacing:0}.chip{background:var(--bg-2);color:var(--muted);white-space:nowrap;border-radius:999px;align-items:center;gap:5px;padding:4px 10px;font-size:13px;font-weight:800;display:inline-flex}.chip.accent{background:var(--accent-soft);color:var(--accent)}.chip.good{background:var(--good-soft);color:var(--good)}.chip.warn{background:var(--warn-soft);color:var(--warn)}.chip.danger{background:var(--danger-soft);color:var(--danger)}.chip.sky{background:var(--sky-soft);color:var(--sky)}button.chip.on{background:var(--accent);color:#fff}.dot{border-radius:50%;flex:none;width:10px;height:10px;display:inline-block}.p1-bg{background:var(--p1)}.p2-bg{background:var(--p2)}.both-bg{background:linear-gradient(135deg, var(--p1) 0 50%, var(--p2) 50% 100%)}.banner{border-radius:var(--radius);align-items:center;gap:12px;margin-bottom:12px;padding:14px 16px;font-weight:700;display:flex}.banner .emoji{flex:none;font-size:26px}.banner.sky{background:var(--sky-soft)}.banner.warn{background:var(--warn-soft)}.banner.good{background:var(--good-soft)}.banner.accent{background:var(--accent-soft)}.banner.danger{background:var(--danger-soft)}.empty{text-align:center;color:var(--muted);padding:34px 20px}.empty .big{margin-bottom:8px;font-size:46px}.empty h3{color:var(--text);margin-bottom:4px;font-size:18px;font-weight:900}.field{flex-direction:column;gap:6px;display:flex}.field>span,.label{color:var(--muted);padding-left:4px;font-size:13px;font-weight:800}.input,.textarea,.select{border-radius:var(--radius-sm);border:1.5px solid var(--line);background:var(--card);appearance:none;outline:none;width:100%;min-height:48px;padding:11px 14px;font-size:16px;font-weight:600;transition:border-color .2s,box-shadow .2s}.input:focus,.textarea:focus,.select:focus{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}.textarea{resize:vertical;min-height:84px}.select{background-image:linear-gradient(45deg, transparent 50%, var(--muted) 50%), linear-gradient(135deg, var(--muted) 50%, transparent 50%);background-position:calc(100% - 20px),calc(100% - 14px);background-repeat:no-repeat;background-size:6px 6px;padding-right:34px}.input.big{min-height:54px;font-size:20px;font-weight:800}input[type=date].input,input[type=time].input{min-width:0}.two-col{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;display:grid}.two-col>*{min-width:0}.seg{background:var(--bg-2);border-radius:999px;gap:4px;padding:4px;display:flex}.seg button{min-height:40px;color:var(--muted);border-radius:999px;flex:1;justify-content:center;align-items:center;gap:6px;min-width:0;padding:0 8px;font-size:14px;font-weight:800;display:inline-flex}.seg button span.ellipsis{min-width:0}.seg button.on{background:var(--card);color:var(--text);box-shadow:var(--shadow)}.toggle-row{cursor:pointer;align-items:center;gap:12px;min-height:52px;padding:6px 4px;display:flex}.toggle-row .grow>div:first-child{font-weight:800}.toggle{background:var(--line);border-radius:999px;flex:none;width:52px;height:32px;transition:background-color .2s;position:relative}.toggle:after{content:"";background:#fff;border-radius:50%;width:26px;height:26px;transition:transform .22s cubic-bezier(.3,1.4,.5,1);position:absolute;top:3px;left:3px;box-shadow:0 2px 6px #0000002e}.toggle.on{background:var(--good)}.toggle.on:after{transform:translate(20px)}.emoji-row{scrollbar-width:none;gap:6px;padding:2px 2px 8px;display:flex;overflow-x:auto}.emoji-row::-webkit-scrollbar{display:none}.emoji-row button{background:var(--bg-2);border-radius:14px;flex:none;width:44px;height:44px;font-size:24px}.emoji-row button.on{background:var(--accent-soft);box-shadow:inset 0 0 0 2px var(--accent)}.emoji-row input{text-align:center;border:1.5px dashed var(--line);background:0 0;border-radius:14px;flex:none;width:64px;font-size:22px}.sheet-backdrop{z-index:50;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#28141c61;animation:.2s fade-in;position:fixed;inset:0}.sheet{max-width:560px;max-height:calc(100dvh - var(--safe-t) - 24px);background:var(--bg);box-shadow:var(--shadow-lg);z-index:51;touch-action:pan-y;border-radius:28px 28px 0 0;flex-direction:column;margin:0 auto;animation:.32s cubic-bezier(.2,.9,.3,1.05) sheet-in;display:flex;position:fixed;bottom:0;left:0;right:0}.sheet.closing{animation:.22s forwards sheet-out}.sheet-backdrop.closing{animation:.22s forwards fade-out}.sheet-head{cursor:grab;flex:none;padding:10px 16px 6px}.sheet-handle{background:var(--faint);opacity:.6;border-radius:999px;width:42px;height:5px;margin:0 auto 10px}.sheet-title{align-items:center;gap:10px;display:flex}.sheet-title h2{flex:1;min-width:0;font-size:21px;font-weight:900}.sheet-body{padding:8px 16px calc(var(--safe-b) + 22px);-webkit-overflow-scrolling:touch;overscroll-behavior:contain;overflow-y:auto}.sheet-foot{padding:10px 16px calc(var(--safe-b) + 14px);border-top:1px solid var(--line);background:var(--bg);flex:none;gap:10px;display:flex}@keyframes sheet-in{0%{transform:translateY(100%)}to{transform:none}}@keyframes sheet-out{to{transform:translateY(100%)}}@keyframes fade-in{0%{opacity:0}}@keyframes fade-out{to{opacity:0}}.tabbar{z-index:40;padding:0 12px calc(var(--safe-b) + 8px);pointer-events:none;position:fixed;bottom:0;left:0;right:0}.tabbar-inner{pointer-events:auto;max-width:520px;height:var(--tab-h);background:color-mix(in srgb, var(--card) 88%, transparent);-webkit-backdrop-filter:saturate(1.6)blur(16px);backdrop-filter:saturate(1.6)blur(16px);box-shadow:var(--shadow-lg);border-radius:26px;gap:4px;margin:0 auto;padding:6px;display:flex}.tab{color:var(--muted);border-radius:20px;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:1px;font-size:11px;font-weight:800;display:flex}.tab .tab-emoji{filter:grayscale(.7);opacity:.75;font-size:23px;line-height:1.1;transition:transform .25s cubic-bezier(.3,1.6,.5,1),filter .2s}.tab.on{background:var(--accent-soft);color:var(--accent)}.tab.on .tab-emoji{filter:none;opacity:1;transform:translateY(-1px)scale(1.12)}.tab-badge{background:var(--accent);color:#fff;border-radius:999px;place-items:center;min-width:18px;height:18px;margin-top:-26px;margin-left:26px;padding:0 5px;font-size:11px;display:grid;position:absolute}.fab{right:max(16px,50% - 264px);bottom:calc(var(--tab-h) + var(--safe-b) + 22px);color:#fff;background:linear-gradient(135deg, var(--accent), var(--accent-2));width:60px;height:60px;box-shadow:0 12px 28px color-mix(in srgb, var(--accent) 45%, transparent);z-index:39;border-radius:22px;place-items:center;font-size:30px;font-weight:900;display:grid;position:fixed}.toasts{left:0;right:0;top:calc(var(--safe-t) + 10px);z-index:100;pointer-events:none;flex-direction:column;align-items:center;gap:8px;padding:0 16px;display:flex;position:fixed}.toast{background:var(--text);color:var(--bg);box-shadow:var(--shadow-lg);border-radius:999px;align-items:center;gap:8px;max-width:100%;padding:10px 18px;font-size:15px;font-weight:800;animation:.35s cubic-bezier(.2,1.3,.4,1) toast-in;display:flex}.toast.error{background:var(--danger);color:#fff}@keyframes toast-in{0%{opacity:0;transform:translateY(-14px)scale(.92)}}.fx-layer{pointer-events:none;z-index:200;position:fixed;inset:0;overflow:hidden}.fx-particle{will-change:transform, opacity;line-height:1;position:absolute}.stamp-in{animation:.55s cubic-bezier(.2,1.5,.4,1) both stamp}@keyframes stamp{0%{opacity:0;transform:scale(2.6)rotate(-24deg)}60%{opacity:1}to{opacity:1;transform:scale(1)rotate(-12deg)}}.pop{animation:.35s cubic-bezier(.3,1.8,.5,1) pop}@keyframes pop{0%{transform:scale(.6)}to{transform:scale(1)}}.wiggle{animation:.5s wiggle}@keyframes wiggle{20%{transform:rotate(-8deg)}40%{transform:rotate(7deg)}60%{transform:rotate(-5deg)}80%{transform:rotate(3deg)}}.spinner{border:3px solid var(--accent-soft);border-top-color:var(--accent);border-radius:50%;width:22px;height:22px;animation:.8s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.shimmer{background:linear-gradient(90deg, var(--bg-2) 0%, var(--card-2) 50%, var(--bg-2) 100%);background-size:200% 100%;animation:1.2s linear infinite shimmer}@keyframes shimmer{to{background-position:-200% 0}}.splash{place-items:center;min-height:100dvh;font-size:54px;display:grid}@keyframes pulse{50%{transform:scale(1.12)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}@media print{.tabbar,.fab,.no-print,.toasts{display:none!important}body,html{color:#000;background:#fff}.screen{padding:0}}.countdowns{scroll-snap-type:x proximity;scrollbar-width:none;gap:10px;margin:0 -16px 14px;padding:2px 16px 8px;display:flex;overflow-x:auto}.countdowns::-webkit-scrollbar{display:none}.countdown{scroll-snap-align:start;border-radius:var(--radius);text-align:left;background:var(--card);width:128px;box-shadow:var(--shadow);flex:none;padding:12px 14px;position:relative;overflow:hidden}.countdown:before{content:"";opacity:.16;position:absolute;inset:0}.countdown.p1:before{background:var(--p1)}.countdown.p2:before{background:var(--p2)}.countdown.both:before,.countdown.together:before{background:linear-gradient(135deg, var(--p1), var(--p2))}.countdown>*{position:relative}.cd-emoji{font-size:26px}.cd-num{margin-top:2px;font-size:20px;font-weight:900}.cd-title{color:var(--muted);font-size:13px;font-weight:700}.cd-track{border-bottom:2px dashed color-mix(in srgb, var(--muted) 35%, transparent);height:24px;margin:6px 4px 0 2px;position:relative}.cd-track:after{content:"♥";color:var(--accent);font-size:12px;position:absolute;bottom:-9px;right:-6px}.cd-bunny{position:absolute;bottom:-3px}.cal{padding:10px 8px 12px}.cal-head{align-items:center;gap:4px;padding:0 4px 6px;display:flex}.cal-title{text-align:left;text-transform:capitalize;flex:1;padding:6px;font-size:19px;font-weight:900}.cal-weekdays,.cal-grid{grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.cal-weekdays div{text-align:center;color:var(--faint);padding:2px 0 4px;font-size:12px;font-weight:800}.cal-grid{touch-action:pan-y}.cal-grid.slide-l{animation:.26s slide-l}.cal-grid.slide-r{animation:.26s slide-r}@keyframes slide-l{0%{opacity:0;transform:translate(26px)}}@keyframes slide-r{0%{opacity:0;transform:translate(-26px)}}.day{aspect-ratio:1/1.08;border-radius:14px;flex-direction:column;align-items:center;min-width:0;padding-top:4px;font-size:15px;font-weight:800;display:flex;position:relative}.day.out{color:var(--faint)}.day.out .marks{opacity:.45}.day.trip{background:color-mix(in srgb, var(--sky) 13%, transparent)}.day .num{border-radius:50%;place-items:center;width:30px;height:30px;transition:background-color .2s,color .2s;display:grid}.day.today .num{background:var(--accent-soft);color:var(--accent)}.day.sel .num{background:linear-gradient(135deg, var(--accent), var(--accent-2));color:#fff;box-shadow:0 4px 12px color-mix(in srgb, var(--accent) 40%, transparent)}.day .marks{align-items:center;gap:3px;height:8px;margin-top:2px;display:flex}.day .mark{border-radius:50%;width:6px;height:6px}.day .more{color:var(--muted);font-size:9px;font-weight:900;line-height:1}.day .icons{letter-spacing:-1px;margin-top:1px;font-size:9px;line-height:1}.agenda-head{align-items:center;gap:10px;margin:22px 4px 10px;display:flex}.agenda-head h2{text-transform:capitalize;flex:1;font-size:19px;font-weight:900}.item{background:var(--card);box-shadow:var(--shadow);text-align:left;border-radius:18px;align-items:center;gap:12px;width:100%;min-height:64px;padding:12px 14px 12px 16px;display:flex;position:relative;overflow:hidden}.item .bar{width:5px;position:absolute;top:0;bottom:0;left:0}.item .bubble{background:var(--bg-2);border-radius:14px;flex:none;place-items:center;width:42px;height:42px;font-size:22px;display:grid}.item .grow{flex-direction:column;min-width:0;display:flex}.item .title{font-weight:800;display:block}.item .meta{color:var(--muted);font-size:13px;font-weight:600}.item .chev{color:var(--faint);font-size:22px;font-weight:900}.item.feed{background:var(--card-2);box-shadow:none;border:1.5px dashed var(--line)}.item.water .bubble{background:var(--sky-soft)}.item.special{background:linear-gradient(135deg, color-mix(in srgb, var(--p1) 18%, var(--card)), color-mix(in srgb, var(--p2) 22%, var(--card)))}.check{border:2.5px solid var(--faint);color:#fff;border-radius:50%;flex:none;place-items:center;width:30px;height:30px;font-size:16px;font-weight:900;transition:background-color .2s,border-color .2s,transform .25s cubic-bezier(.3,1.8,.5,1);display:grid}.check.on{background:var(--good);border-color:var(--good)}.check.on:after{content:"✓"}.lists-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;display:grid}.list-card{text-align:left;flex-direction:column;align-items:flex-start;gap:4px;min-height:140px;display:flex}.list-emoji{margin-bottom:4px;font-size:34px}.list-name{font-size:18px;font-weight:900}.progress{background:var(--bg-2);border-radius:999px;width:100%;height:8px;margin-top:auto;display:block;overflow:hidden}.progress>span{background:linear-gradient(90deg, var(--good), color-mix(in srgb, var(--good) 60%, #b6f0d4));border-radius:999px;height:100%;transition:width .4s cubic-bezier(.3,1.2,.5,1);display:block}.add-bar{top:calc(var(--safe-t) + 6px);z-index:5;gap:8px;margin-bottom:12px;display:flex;position:sticky}.add-bar .btn{flex:none;width:52px;min-height:48px;padding:0;font-size:24px}.usuals{scrollbar-width:none;align-items:center;gap:6px;margin:-2px -16px 12px;padding:2px 16px 6px;display:flex;overflow-x:auto}.usuals::-webkit-scrollbar{display:none}.li{background:var(--card);box-shadow:var(--shadow);border-radius:18px;align-items:center;gap:12px;min-height:58px;padding:10px 10px 10px 14px;animation:.25s pop;display:flex}.li-text{text-align:left;word-break:break-word;flex-direction:column;gap:3px;min-width:0;font-size:16px;font-weight:700;display:flex}.li-meta{flex-wrap:wrap;gap:6px;display:flex}.li-meta:empty{display:none}.li-who{flex:none;place-items:center;width:40px;height:40px;display:grid}.li-anyone{border:2px dashed var(--line);opacity:.6;border-radius:50%;place-items:center;width:30px;height:30px;font-size:13px;display:grid}.li.done{box-shadow:none;border:1.5px solid var(--line);background:0 0;animation:none}.li.done .li-text>span:first-child{color:var(--muted);text-decoration:line-through}.add-wish{gap:8px;margin-bottom:14px;display:flex}.add-wish .btn.soft{cursor:pointer;flex:none;width:52px;padding:0;font-size:20px}.home-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:14px;display:grid}.home-stats>div{background:var(--card);box-shadow:var(--shadow);border-radius:18px;flex-direction:column;min-width:0;padding:10px 12px;display:flex}.home-stats b{white-space:nowrap;text-overflow:ellipsis;font-size:17px;font-weight:900;overflow:hidden}.home-stats span{color:var(--muted);font-size:12px;font-weight:700}.rooms-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;margin-bottom:14px;display:grid}.room-card{text-align:left;flex-direction:column;gap:4px;padding:10px 10px 12px;display:flex}.room-card.add{color:var(--muted);border-style:dashed;justify-content:center;align-items:center;min-height:160px}.room-collage{aspect-ratio:1.15;background:var(--bg-2);border-radius:16px;gap:2px;margin-bottom:6px;display:grid;overflow:hidden}.room-collage.n0,.room-collage.n1{grid-template-columns:1fr}.room-collage.n2{grid-template-columns:1fr 1fr}.room-collage.n3,.room-collage.n4{grid-template-rows:1fr 1fr;grid-template-columns:1fr 1fr}.room-collage.n3>:first-child{grid-row:span 2}.room-collage img{object-fit:cover;background:#fff;width:100%;height:100%}.room-emoji{place-items:center;font-size:44px;display:grid}.room-name{text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:900;overflow:hidden}.jar{background:var(--bg-2);border-radius:999px;height:7px;margin-top:4px;display:flex;overflow:hidden}.jar.big{height:14px;margin:10px 0 8px}.jar>span{background:linear-gradient(90deg, var(--accent-2), var(--accent));height:100%;transition:width .4s;display:block}.jar>span.spent{background:var(--good)}.jar>span.planned{background:color-mix(in srgb, var(--accent) 55%, transparent)}.jar>span.over{background:var(--danger)}.good-text{color:var(--good)}.danger-text{color:var(--danger)}.budget-card{margin-bottom:14px}.gallery-card{align-items:center;gap:14px;display:flex}.masonry{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:10px;display:grid}.masonry-col{flex-direction:column;gap:10px;min-width:0;display:flex}.wish{background:var(--card);box-shadow:var(--shadow);border-radius:20px;animation:.3s pop;position:relative;overflow:hidden}.wish.match{box-shadow:0 0 0 2.5px var(--accent), var(--shadow)}.wish-img{background:#fff;width:100%;display:block;position:relative}.wish-img img{object-fit:contain;background:#fff;width:100%;height:auto;min-height:120px;max-height:260px}.wish-noimg{aspect-ratio:1.2;background:var(--bg-2);place-items:center;font-size:40px;display:grid}.wish-noimg.big{aspect-ratio:auto;height:100%;min-height:220px;font-size:70px}.wish-match{background:var(--accent);color:#fff;box-shadow:0 4px 12px color-mix(in srgb, var(--accent) 40%, transparent);border-radius:999px;padding:3px 9px;font-size:12px;font-weight:900;position:absolute;top:8px;left:8px}.got-it{border:4px solid var(--good);color:var(--good);background:color-mix(in srgb, var(--card) 80%, transparent);letter-spacing:.06em;pointer-events:none;border-radius:12px;padding:4px 14px;font-size:26px;font-weight:900;transition:opacity .2s;position:absolute;top:50%;left:50%;transform:rotate(-12deg)}.got-it.small-stamp{border-width:3px;padding:2px 8px;font-size:15px}.wish.bought .wish-img img{opacity:.75}.wish-body{cursor:pointer;padding:10px 12px 6px}.wish-title{margin-bottom:6px;font-size:14px;font-weight:800;line-height:1.25}.wish-hearts{gap:6px;padding:4px 10px 10px;display:flex}.heart{background:var(--bg-2);border-radius:999px;align-items:center;gap:2px;padding:3px 8px 3px 4px;font-size:15px;display:inline-flex}.heart:disabled{opacity:1}.heart.on.p1{background:color-mix(in srgb, var(--p1) 25%, var(--card))}.heart.on.p2{background:color-mix(in srgb, var(--p2) 25%, var(--card))}.heart-who{font-size:13px}.wish-hero{background:#fff;border-radius:20px;place-items:center;min-height:200px;max-height:300px;display:grid;position:relative;overflow:hidden}.wish-hero img{object-fit:contain;width:100%;max-height:300px}.hero-btn{position:absolute;bottom:10px;right:10px}.room-chips{scrollbar-width:none;gap:6px;margin:0 -16px;padding:2px 16px 6px;display:flex;overflow-x:auto}.room-chips::-webkit-scrollbar{display:none}.room-chips .chip{min-height:34px;font-size:14px}.care-badges{flex-wrap:wrap;gap:6px;display:flex}.gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.gallery-item{box-shadow:var(--shadow);aspect-ratio:.9;text-align:left;background:#fff;border-radius:18px;position:relative;overflow:hidden}.gallery-item img{object-fit:cover;width:100%;height:100%}.gallery-item .wish-noimg{aspect-ratio:auto;height:100%}.gallery-cap{color:#fff;background:linear-gradient(#0000,#0009);flex-direction:column;padding:18px 10px 8px;font-size:13px;display:flex;position:absolute;bottom:0;left:0;right:0}.swipe-screen{flex-direction:column;min-height:100dvh;display:flex}.swipe-stage{flex:1;min-height:420px;margin-bottom:16px;position:relative}.swipe-card{box-shadow:var(--shadow-lg);touch-action:none;-webkit-user-select:none;user-select:none;cursor:grab;background:#fff;border-radius:28px;flex-direction:column;display:flex;position:absolute;inset:0;overflow:hidden}.swipe-card>img{object-fit:contain;pointer-events:none;flex:1;width:100%;min-height:0}.swipe-card.behind{opacity:.7;pointer-events:none;transform:scale(.94)translateY(14px)}.swipe-info{background:var(--card);color:var(--text);padding:16px 18px 18px}.swipe-stamp{pointer-events:none;border:5px solid;border-radius:12px;padding:4px 14px;font-size:34px;font-weight:900;position:absolute;top:26px}.swipe-stamp.love{color:var(--good);left:22px;transform:rotate(-14deg)}.swipe-stamp.nope{color:var(--danger);right:22px;transform:rotate(14deg)}.swipe-buttons{justify-content:center;gap:34px;padding-bottom:6px;display:flex}.swipe-btn{background:var(--card);width:72px;height:72px;box-shadow:var(--shadow-lg);border-radius:50%;place-items:center;font-size:30px;display:grid}.swipe-btn.love{width:84px;height:84px;font-size:36px}.match-overlay{z-index:60;background:color-mix(in srgb, var(--accent) 40%, #00000073);place-items:center;padding:24px;animation:.2s fade-in;display:grid;position:fixed;inset:0}.match-card{background:var(--card);text-align:center;box-shadow:var(--shadow-lg);border-radius:30px;width:100%;max-width:340px;padding:28px 24px}.match-card h2{background:linear-gradient(135deg, var(--p1), var(--p2));color:#0000;-webkit-background-clip:text;background-clip:text;margin:6px 0;font-size:30px;font-weight:900}.plants-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;display:grid}.plant-card{background:var(--card);box-shadow:var(--shadow);text-align:left;border-radius:22px;flex-direction:column;gap:2px;min-width:0;padding:8px 8px 12px;display:flex}.plant-photo{aspect-ratio:1;background:linear-gradient(160deg, var(--good-soft), var(--bg-2));border-radius:16px;margin-bottom:6px;position:relative;overflow:hidden}.plant-photo img{object-fit:cover;width:100%;height:100%}.plant-nophoto{place-items:center;height:100%;font-size:48px;display:grid}.plant-nophoto.big{min-height:220px;font-size:90px}.plant-mood{background:var(--card);width:36px;height:36px;box-shadow:var(--shadow);border-radius:50%;place-items:center;font-size:21px;display:grid;position:absolute;top:6px;right:6px}.plant-mood.small{width:24px;height:24px;font-size:14px;top:auto;bottom:-4px;right:-4px}.mood-thirsty .plant-mood,.mood-dramatic .plant-mood{animation:1.6s ease-in-out infinite wiggle}.plant-outdoor{font-size:16px;position:absolute;bottom:6px;left:6px}.plant-name{padding:0 4px;font-size:16px;font-weight:900}.plant-water{color:var(--muted);align-items:center;gap:6px;padding:0 4px;font-size:13px;font-weight:700;display:flex}.plant-water.due{color:var(--danger)}.plant-water .dot{width:8px;height:8px}.today-calm{align-items:center;gap:12px;display:flex}.due-row{background:var(--card);box-shadow:var(--shadow);border-radius:18px;align-items:center;gap:10px;padding:8px 10px 8px 8px;display:flex}.due-row.chore{background:var(--card-2);box-shadow:none;border:1.5px solid var(--line)}.due-photo{background:var(--good-soft);border-radius:14px;flex:none;place-items:center;width:48px;height:48px;font-size:24px;display:grid;position:relative}.due-photo img{object-fit:cover;border-radius:14px;width:100%;height:100%}.due-photo.big{width:76px;height:76px;font-size:36px}.tools-row{flex-wrap:wrap;gap:8px;margin:18px 0 8px;display:flex}.tools-row .chip{background:var(--card);min-height:36px;box-shadow:var(--shadow);color:var(--text);font-size:14px}.memorial{color:var(--muted);margin-top:16px;font-weight:700}.memorial summary{cursor:pointer}.add-option{background:var(--card);box-shadow:var(--shadow);text-align:left;border-radius:20px;align-items:center;gap:14px;width:100%;padding:14px 16px;display:flex}.add-option.big{background:linear-gradient(135deg, var(--good-soft), var(--accent-soft));box-shadow:none}.add-option .grow{flex-direction:column;display:flex}.add-emoji{font-size:32px}.id-photos{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.id-photo{aspect-ratio:1;background:var(--bg-2);border-radius:16px;position:relative;overflow:hidden}.id-photo img{object-fit:cover;width:100%;height:100%}.id-photo .icon-btn{position:absolute;top:4px;right:4px}.id-photo.add{border:2px dashed var(--line);color:var(--muted);flex-direction:column;justify-content:center;align-items:center;font-size:26px;display:flex}.candidate{background:var(--card);box-shadow:var(--shadow);text-align:left;border-radius:18px;align-items:center;gap:12px;width:100%;padding:10px 12px;display:flex}.cand-imgs{flex:none;gap:4px;display:flex}.cand-imgs img{object-fit:cover;background:var(--bg-2);border-radius:12px;width:54px;height:54px}.cand-noimg{background:var(--bg-2);border-radius:12px;place-items:center;width:54px;height:54px;font-size:28px;display:grid}.conf{background:var(--bg-2);border-radius:999px;height:6px;margin-top:6px;overflow:hidden}.conf>span{background:var(--good);border-radius:999px;height:100%;display:block}.care-line{align-items:flex-start;gap:10px;font-weight:600;line-height:1.35;display:flex}.care-line>span:first-child{flex:none}.plant-hero{background:linear-gradient(160deg, var(--good-soft), var(--bg-2));aspect-ratio:1.1;box-shadow:var(--shadow);border-radius:28px;position:relative;overflow:hidden}.plant-hero>img{object-fit:cover;width:100%;height:100%}.hero-mood{background:color-mix(in srgb, var(--card) 92%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:var(--shadow);border-radius:999px;align-items:center;gap:6px;padding:6px 14px 6px 8px;display:flex;position:absolute;bottom:12px;left:12px}.hero-mood span{font-size:26px}.hero-ribbon{text-align:center;color:#fff;background:#0000008c;border-radius:14px;padding:6px;font-weight:800;position:absolute;top:12px;left:12px;right:12px}.water-card.highlight{box-shadow:0 0 0 3px var(--sky), var(--shadow);animation:.4s pop}.p1-ring{box-shadow:0 0 0 2.5px var(--p1)}.p2-ring{box-shadow:0 0 0 2.5px var(--p2)}.photo-strip{scrollbar-width:none;gap:8px;margin:0 -16px 12px;padding:0 16px 4px;display:flex;overflow-x:auto}.photo-strip::-webkit-scrollbar{display:none}.photo-strip img{object-fit:cover;border-radius:16px;flex:none;width:92px;height:92px}.timeline{flex-direction:column;gap:2px;display:flex;position:relative}.tl-item{cursor:pointer;border-radius:14px;gap:12px;padding:8px 4px;display:flex}.tl-icon{background:var(--card);border-radius:50%;flex:none;place-items:center;width:34px;height:34px;font-size:16px;display:grid}.todo-list{flex-direction:column;gap:6px;margin:0;padding-left:22px;font-weight:600;display:flex}.range{width:100%;accent-color:var(--accent);height:32px}.scanner{aspect-ratio:3/4;background:#000;border-radius:22px;position:relative;overflow:hidden}.scanner video{object-fit:cover;width:100%;height:100%}.scanner-frame{border:4px solid #fff;border-radius:24px;position:absolute;inset:22%;box-shadow:0 0 0 999px #00000059}.slideshow{z-index:80;background:#111;place-items:center;display:grid;position:fixed;inset:0}.slideshow img{object-fit:contain;max-width:100%;max-height:100%;animation:.4s fade-in}.slide-cap{padding:20px 16px calc(var(--safe-b) + 20px);color:#fff;text-align:center;background:linear-gradient(#0000,#000000b3);position:absolute;bottom:0;left:0;right:0}.slide-dots{justify-content:center;gap:5px;margin-top:8px;display:flex}.slide-dots span{background:#fff6;border-radius:50%;width:6px;height:6px}.slide-dots span.on{background:#fff}.slide-close{top:calc(var(--safe-t) + 14px);position:absolute;right:14px}.slide-paused{font-size:44px;position:absolute}.sitter-plant.due{box-shadow:0 0 0 2.5px var(--sky), var(--shadow)}.sitter-plant .care-line{margin-top:8px}.stickers{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.sticker{color:#3b2a31;text-align:center;break-inside:avoid;background:#fff;border:2px dashed #f1c6d3;border-radius:18px;flex-direction:column;gap:2px;padding:10px;font-size:12px;display:flex}.sticker img{border-radius:8px;width:100%}.sticker b{font-size:14px}.checklist h2{margin-bottom:4px;font-size:22px;font-weight:900}.cl-plant{border-bottom:1px solid var(--line);break-inside:avoid;gap:14px;padding:14px 0;display:flex}.cl-photo{background:var(--good-soft);border-radius:14px;flex:none;place-items:center;width:84px;height:84px;font-size:36px;display:grid;overflow:hidden}.cl-photo img{object-fit:cover;width:100%;height:100%}.cl-days{flex-wrap:wrap;gap:4px 14px;margin-top:6px;font-weight:700;display:flex}@media print{.stickers{grid-template-columns:repeat(4,1fr)}.print-page{padding:10mm!important}}.settings-section{margin-bottom:22px}.settings-section h2{align-items:center;gap:8px;margin:0 4px 10px;font-size:16px;font-weight:900;display:flex}.settings-section .card .card{box-shadow:none;background:var(--card-2)}.sep{border:0;border-top:1.5px solid var(--line);width:100%;margin:6px 0}.save-bar{left:0;right:0;bottom:calc(var(--tab-h) + var(--safe-b) + 18px);z-index:41;gap:8px;max-width:520px;margin:0 auto;padding:0 16px;animation:.3s toast-in;display:flex;position:fixed}.save-bar .btn.ghost{background:var(--card);box-shadow:var(--shadow)}.credits{color:var(--muted);margin:0;padding-left:20px;font-size:14px;font-weight:600}.motif{vertical-align:middle;flex:none;display:inline-block;position:relative}.sprite{animation:sprite-play var(--dur) steps(var(--frames)) infinite}.sprite.still{animation:none}@keyframes sprite-play{0%{background-position:0 0}to{background-position:calc(-1 * var(--frames) * var(--w)) 0}}.ph{place-items:center;line-height:1;display:inline-grid}.ph-glyph{display:inline-block}.ph-hop .ph-glyph{transform-origin:50% 100%;animation:.8s cubic-bezier(.3,.7,.4,1) infinite ph-hop}@keyframes ph-hop{0%,to{transform:translateY(0)scale(1.06,.94)}15%{transform:translateY(0)scale(1)}45%{transform:translateY(-34%)scale(.95,1.06)}75%{transform:translateY(0)scale(1.1,.9)}}.ph-poke .ph-glyph{animation:1.4s ease-in-out infinite ph-poke}@keyframes ph-poke{0%,to{transform:translateY(-12%)rotate(0)}30%{transform:translateY(12%)rotate(0)}45%{transform:translateY(12%)rotate(-10deg)}60%{transform:translateY(12%)rotate(10deg)}75%{transform:translateY(6%)rotate(0)}}.ph-nap .ph-glyph{transform-origin:50% 100%;animation:3s ease-in-out infinite ph-breathe}@keyframes ph-breathe{50%{transform:scale(1.05,.96)}}.ph-z{color:var(--muted);font-size:34%;font-weight:900;animation:3s ease-in-out infinite ph-z;position:absolute;top:0;right:4%}@keyframes ph-z{0%{opacity:0;transform:translateY(30%)}40%{opacity:1}to{opacity:0;transform:translate(40%,-60%)scale(1.4)}}.ph-twinkle .ph-glyph{animation:1.6s ease-in-out infinite ph-twinkle}@keyframes ph-twinkle{0%,to{transform:scale(1)rotate(0)}20%{transform:scale(1.18)rotate(-12deg)}40%{transform:scale(.92)rotate(8deg)}}.ph-boil .ph-glyph{animation:.375s step-end infinite ph-boil}@keyframes ph-boil{0%{transform:rotate(-2deg)translate(.5px)}33%{transform:rotate(1.5deg)translate(-.5px,.5px)}66%{transform:rotate(-.5deg)translateY(-.5px)}}.nail-ph svg{border-radius:20%;display:block;overflow:hidden}.nail-ph .nail-finger{transform-origin:50% 70%;animation:1.5s ease-in-out infinite nail-poke}.nail-ph.still .nail-finger{animation:none;transform:translateY(14px)}@keyframes nail-poke{0%,to{transform:translateY(-4px)}30%{transform:translateY(16px)}42%{transform:translateY(16px)rotate(-7deg)}54%{transform:translateY(16px)rotate(7deg)}66%{transform:translateY(16px)rotate(0)}}.motif-loading{text-align:center;color:var(--muted);flex-direction:column;align-items:center;gap:10px;padding:26px 10px;font-weight:700;display:flex}.splash .motif-loading{padding:0}.fruit-hop{justify-content:center;align-items:flex-end;gap:6px;display:flex}.fruit-hop>span{transform-origin:50% 100%;animation:1.2s ease-in-out infinite fruit-hop;display:inline-block}.fruit-hop>span:nth-child(2){animation-delay:.15s}.fruit-hop>span:nth-child(3){animation-delay:.3s}@keyframes fruit-hop{0%,60%,to{transform:translateY(0)scale(1)}22%{transform:translateY(-40%)scale(.96,1.05)}42%{transform:translateY(0)scale(1.07,.93)}}.slot-card{align-items:flex-start;gap:14px;display:flex}.slot-preview{background:var(--bg-2);border-radius:18px;flex:none;place-items:center;width:104px;height:104px;display:grid}code{background:var(--bg-2);border-radius:6px;padding:1px 5px;font-size:.92em}@media (prefers-reduced-motion:reduce){.sprite,.ph .ph-glyph,.ph-z,.fruit-hop>span,.nail-ph .nail-finger{animation:none!important}}.app-icon{vertical-align:-.3em;object-fit:contain;-webkit-user-select:none;user-select:none;flex:none;width:1.4em;height:1.4em;display:inline-block}.tab-emoji .app-icon{width:36px;height:36px}.bubble .app-icon,.due-photo>.app-icon{width:100%;height:100%}.emoji-row .app-icon{width:34px;height:34px}.person-badge .app-icon{width:100%;height:100%}.loti-badge{color:var(--text);align-items:center;gap:3px;font-weight:800;display:inline-flex}.loti-badge .app-icon{width:25px;height:25px}.cal-grid .loti-mark{width:20px;height:20px;position:absolute;top:1px;right:0}.icon-library{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.icon-library>div{text-align:center;background:var(--card);border:1px solid var(--line);border-radius:var(--radius-sm);min-width:0;padding:12px 4px}.icon-library small{margin-top:7px;font-size:11px;display:block}.birthday-fields{grid-template-columns:1fr 1fr;gap:8px;display:grid}.brand-mark{object-fit:contain;vertical-align:middle;border-radius:23%;flex:none;display:inline-block}.brand-title{align-items:center;gap:8px;display:flex}.brand-title>span{text-overflow:ellipsis;min-width:0;overflow:hidden}
