:root{--bg: #fbf6f2;--bg-glow: #f8e9e6;--surface: #ffffff;--surface-2: #f6eeea;--ink: #3d2e34;--ink-2: #7a6670;--ink-3: #a8979e;--line: #efe4df;--line-strong: #dccbc5;--rose: #b5667a;--rose-ink: #ffffff;--rose-soft: #f6e1e4;--blush: #fcf0f0;--gold: #c9a27e;--sage: #8fa58c;--danger: #b04e5a;--font-display: "Cormorant Garamond", "Times New Roman", serif;--font-body: "DM Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--radius-lg: 24px;--radius: 18px;--radius-sm: 12px;--shadow: 0 1px 2px rgba(94, 56, 66, .04), 0 8px 28px rgba(94, 56, 66, .07);--shadow-lift: 0 10px 40px rgba(94, 56, 66, .18);--tabbar-h: 68px;--safe-bottom: env(safe-area-inset-bottom, 0px);--gutter: 20px;color-scheme:light}@media(prefers-color-scheme:dark){:root{--bg: #1e1719;--bg-glow: #2a1f23;--surface: #2a2226;--surface-2: #33292d;--ink: #f4e9ea;--ink-2: #c4b0b6;--ink-3: #8e7a81;--line: #3b3034;--line-strong: #54454b;--rose: #e3a0ae;--rose-ink: #2a1a1f;--rose-soft: #4a3037;--blush: #33262a;--danger: #ec8f99;--shadow: 0 1px 2px rgba(0, 0, 0, .2), 0 8px 28px rgba(0, 0, 0, .25);color-scheme:dark}}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;min-height:100dvh;background:radial-gradient(120% 60% at 50% -10%,var(--bg-glow),transparent 70%) no-repeat,var(--bg);color:var(--ink);font:400 16px/1.55 var(--font-body);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}body.is-locked{overflow:hidden}body.is-locked #app{visibility:hidden}h1,h2,h3{margin:0;font-weight:600}p{margin:0}a{color:var(--rose);text-decoration:none}button{font:inherit;color:inherit}ul{margin:0;padding:0;list-style:none}.icon{flex:none;display:block}.muted{color:var(--ink-2)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}:focus-visible{outline:2px solid var(--rose);outline-offset:2px}.view{max-width:560px;margin:0 auto;padding:calc(env(safe-area-inset-top,0px) + 28px) var(--gutter) calc(var(--tabbar-h) + var(--safe-bottom) + 96px);display:flex;flex-direction:column;gap:18px}.tabbar{position:fixed;inset:auto 0 0;z-index:20;display:flex;justify-content:center;gap:4px;height:calc(var(--tabbar-h) + var(--safe-bottom));padding:8px 12px var(--safe-bottom);background:color-mix(in srgb,var(--bg) 86%,transparent);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-top:1px solid var(--line)}.tabbar a{flex:1;min-width:0;max-width:120px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border-radius:var(--radius-sm);color:var(--ink-3);font-size:11.5px;font-weight:500;letter-spacing:.02em;transition:color .2s}.tabbar a.active{color:var(--rose)}.fab{position:fixed;z-index:21;right:max(20px,calc(50vw - 260px));bottom:calc(var(--tabbar-h) + var(--safe-bottom) + 18px);width:60px;height:60px;border:0;border-radius:22px;display:grid;place-items:center;background:linear-gradient(145deg,#d88c9c,var(--rose));color:#fff;box-shadow:var(--shadow-lift);cursor:pointer;transition:transform .2s}.fab:active{transform:scale(.94)}.sync-pill{position:fixed;z-index:25;top:calc(env(safe-area-inset-top,0px) + 10px);left:50%;transform:translate(-50%);padding:6px 14px;border-radius:999px;background:var(--surface);box-shadow:var(--shadow);font-size:12.5px;color:var(--ink-2);white-space:nowrap}.sync-pill.sync-error{color:var(--danger)}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px}.eyebrow{color:var(--ink-2);font-size:14px;letter-spacing:.02em}.title{font-family:var(--font-display);font-size:clamp(32px,9vw,40px);line-height:1.05;font-weight:600;letter-spacing:-.01em}.page-sub{color:var(--ink-2);font-size:14.5px;margin-top:-6px}.back{display:inline-flex;align-items:center;gap:6px;font-size:14px;color:var(--ink-2);margin-bottom:6px}.day-nav{display:flex;align-items:center;gap:4px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 22px;border:0;border-radius:999px;font-weight:500;cursor:pointer;transition:transform .15s,opacity .15s}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.55}.btn-primary{background:var(--rose);color:var(--rose-ink)}.btn-soft{background:var(--rose-soft);color:var(--rose)}.btn-ghost{background:transparent;color:var(--ink-2);padding:0 12px}.btn-danger{color:var(--danger)}.icon-btn{width:40px;height:40px;display:grid;place-items:center;border:0;border-radius:14px;background:transparent;color:var(--ink-2);cursor:pointer}.icon-btn:hover{background:var(--surface-2)}.icon-btn-solid{background:var(--rose);color:var(--rose-ink)}.icon-btn-solid:hover{background:var(--rose);opacity:.9}.pill{display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:0 14px;border:1px solid var(--line-strong);border-radius:999px;background:var(--surface);color:var(--ink);font-size:13.5px;font-weight:500;white-space:nowrap;cursor:pointer}.pill-primary{background:var(--rose);border-color:var(--rose);color:var(--rose-ink)}.pill-quiet{border-color:transparent;background:transparent;color:var(--ink-2)}.card{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:20px}.card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px}.card-head h2,.card-title{font-family:var(--font-display);font-size:24px;line-height:1.15}.card-title{display:flex;align-items:center;gap:8px;margin-bottom:10px}.card-title .icon{color:var(--rose)}.card-sub{color:var(--ink-2);font-size:14px;margin-top:2px}.section{display:block}.section>summary{display:flex;align-items:baseline;gap:10px;padding:4px 4px 10px;list-style:none;cursor:pointer}.section>summary::-webkit-details-marker{display:none}.section>summary h2{font-family:var(--font-display);font-size:22px}.count{color:var(--ink-3);font-size:13px}.tasks{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow);overflow:hidden}.task{display:flex;align-items:center;gap:4px;padding:6px 10px 6px 8px;border-left:3px solid var(--c)}.task+.task{border-top:1px solid var(--line)}.check{flex:none;width:44px;height:44px;display:grid;place-items:center;border:0;background:none;cursor:pointer}.check .icon{width:24px;height:24px;padding:3px;border:1.6px solid var(--line-strong);border-radius:50%;color:transparent;transition:background .2s,border-color .2s,color .2s}.task.done .check .icon{background:var(--rose);border-color:var(--rose);color:var(--rose-ink)}.task-main{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:10px 4px;border:0;background:none;text-align:left;cursor:pointer}.task-title{font-weight:500;overflow-wrap:anywhere}.task.done .task-title{color:var(--ink-3);text-decoration:line-through;text-decoration-color:var(--line-strong)}.task.closed .task-title{color:var(--ink-3)}.task-meta{display:inline-flex;align-items:center;gap:6px;color:var(--ink-2);font-size:13px}.mnm-star{color:var(--gold);display:inline-flex}.mnm-star .icon{fill:currentColor}.dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--c);flex:none}.dot-lg{width:12px;height:12px}.progress{display:flex;align-items:center;gap:12px;padding:0 4px}.progress-bar{flex:1;height:6px;border-radius:999px;background:var(--rose-soft);overflow:hidden}.progress-bar span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#e3a6b3,var(--rose));transition:width .4s}.progress-text{font-size:13px;color:var(--ink-2);white-space:nowrap}.empty-state{display:flex;flex-direction:column;align-items:center;gap:14px;padding:48px 20px;text-align:center;color:var(--ink-2)}.empty-state p{font-family:var(--font-display);font-size:22px;font-style:italic;color:var(--ink)}.empty-mark{font-size:34px;color:var(--rose);opacity:.7}.empty{color:var(--ink-2);text-align:center;padding:40px}.leftovers{background:linear-gradient(160deg,var(--blush),var(--surface) 70%)}.leftover-list{display:flex;flex-direction:column;gap:12px}.leftover{padding:12px 14px;border-radius:var(--radius);background:var(--surface);border-left:3px solid var(--c)}.leftover-title{display:flex;align-items:center;gap:6px;font-weight:500;margin-bottom:10px}.leftover-title small{color:var(--ink-3);font-weight:400;margin-left:auto}.leftover-actions{display:flex;flex-wrap:wrap;gap:6px}.capture{display:flex;gap:8px;align-items:center}.capture .field{flex:1}.capture .icon-btn{width:50px;height:50px;border-radius:16px}.form{display:flex;flex-direction:column;gap:16px}.field{width:100%;min-height:48px;padding:12px 14px;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink);font:inherit;transition:border-color .2s,box-shadow .2s}.field:focus{outline:none;border-color:var(--rose);box-shadow:0 0 0 4px var(--rose-soft)}.field-lg{font-size:18px;min-height:54px}.field-sm{width:auto;min-height:40px;padding:8px 10px;max-width:128px}.field-phone{max-width:150px}textarea.field{resize:vertical;min-height:72px}.field-label{display:grid;grid-template-columns:auto 1fr;align-items:baseline;gap:6px 4px;font-size:13.5px;color:var(--ink-2);font-weight:500}.field-label>.field{grid-column:1 / -1}.optional{color:var(--ink-3);font-weight:400}.row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.row-end{flex-direction:row;align-items:flex-end}.grow{flex:1}.hint{display:flex;gap:6px;align-items:baseline;font-size:13.5px;color:var(--ink-2);line-height:1.5}.hint .icon{flex:none;transform:translateY(2px)}.form-actions{display:flex;justify-content:space-between;align-items:center;gap:12px;padding-top:4px}.form-actions .btn-primary{margin-left:auto;min-width:140px}fieldset{border:0;margin:0;padding:0;min-width:0}legend{padding:0;margin-bottom:8px;font-size:13.5px;color:var(--ink-2);font-weight:500}.chips{display:flex;flex-wrap:wrap;gap:8px}.chips legend{width:100%}.chip input,.seg input,.weekday input,.swatch input{position:absolute;opacity:0;pointer-events:none}.chip span{display:inline-flex;align-items:center;gap:7px;min-height:38px;padding:0 14px;border:1px solid var(--line-strong);border-radius:999px;font-size:14px;cursor:pointer;transition:background .15s,border-color .15s}.chip input:checked+span{background:var(--rose-soft);border-color:var(--rose);color:var(--ink);font-weight:500}.chip input:focus-visible+span,.seg input:focus-visible+span,.weekday input:focus-visible+span{outline:2px solid var(--rose);outline-offset:2px}.seg{display:flex;gap:4px;padding:4px;border-radius:999px;background:var(--surface-2)}.seg label,.seg a{flex:1}.seg span,.seg a{display:flex;align-items:center;justify-content:center;gap:6px;min-height:38px;border-radius:999px;color:var(--ink-2);font-size:14px;font-weight:500;cursor:pointer}.seg input:checked+span,.seg a.active{background:var(--surface);color:var(--ink);box-shadow:var(--shadow)}.form[data-when=inbox] .when-date{display:none}.repeat{display:flex;flex-direction:column;gap:12px}.weekdays,.month-day{display:none}.form[data-freq=weekly] .weekdays{display:flex}.form[data-freq=monthly] .month-day{display:grid}.weekdays{gap:6px;flex-wrap:wrap}.weekday span{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;border:1px solid var(--line-strong);font-size:13px;cursor:pointer}.weekday input:checked+span{background:var(--rose);border-color:var(--rose);color:var(--rose-ink)}.toggle{display:flex;align-items:center;gap:12px;cursor:pointer}.toggle input{position:absolute;opacity:0}.toggle-track{position:relative;flex:none;width:46px;height:28px;border-radius:999px;background:var(--line-strong);transition:background .2s}.toggle-track:after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #00000026;transition:transform .2s}.toggle input:checked+.toggle-track{background:var(--rose)}.toggle input:checked+.toggle-track:after{transform:translate(18px)}.toggle input:focus-visible+.toggle-track{outline:2px solid var(--rose);outline-offset:2px}.toggle-text{display:flex;flex-direction:column;font-weight:500}.toggle-text small{color:var(--ink-2);font-weight:400;font-size:13px}.toggle-sm .toggle-track{width:40px;height:24px}.toggle-sm .toggle-track:after{width:18px;height:18px}.toggle-sm input:checked+.toggle-track:after{transform:translate(16px)}.swatches{display:flex;flex-wrap:wrap;gap:10px}.swatches legend{width:100%}.swatch span{display:block;width:36px;height:36px;border-radius:50%;background:var(--c);cursor:pointer;border:3px solid var(--surface);box-shadow:0 0 0 1px var(--line-strong)}.swatch input:checked+span{box-shadow:0 0 0 2px var(--ink)}.sheet{width:100%;max-width:560px;max-height:92dvh;margin:auto auto 0;padding:0;border:0;border-radius:28px 28px 0 0;background:var(--bg);color:var(--ink);box-shadow:var(--shadow-lift)}.sheet[open]{animation:sheet-in .28s cubic-bezier(.2,.9,.3,1)}.sheet::backdrop{background:#301c2452;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}@keyframes sheet-in{0%{transform:translateY(40px);opacity:0}}@media(min-width:640px){.sheet{margin:auto;border-radius:28px}}.sheet-inner{padding:8px 20px calc(24px + var(--safe-bottom))}.sheet-inner:before{content:"";display:block;width:40px;height:4px;margin:4px auto 6px;border-radius:999px;background:var(--line-strong)}.sheet-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.sheet-head h2{font-family:var(--font-display);font-size:26px}.sheet-sub{color:var(--ink-2);margin:-6px 0 14px}.choice-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px;margin-bottom:18px}.choice{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);text-align:left;cursor:pointer}.choice small{color:var(--ink-2)}.choice.current{border-color:var(--rose)}.quick-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.quick-item{display:flex;flex-direction:column;align-items:center;gap:8px;padding:20px 10px;border:0;border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);color:var(--rose);cursor:pointer}.quick-item span{color:var(--ink);font-weight:500}#toast-root{position:fixed;z-index:60;left:0;right:0;bottom:calc(var(--tabbar-h) + var(--safe-bottom) + 92px);display:flex;justify-content:center;pointer-events:none;padding:0 16px}.toast{display:flex;align-items:center;gap:14px;max-width:520px;padding:12px 12px 12px 18px;border-radius:16px;background:var(--ink);color:var(--bg);box-shadow:var(--shadow-lift);font-size:14.5px;pointer-events:auto;animation:toast-in .25s ease-out}.toast.leaving{opacity:0;transform:translateY(8px);transition:.25s}.toast-error{background:var(--danger);color:#fff}.toast button{border:0;background:none;color:inherit;font-weight:600;padding:6px 8px;border-radius:8px;cursor:pointer;text-decoration:underline;text-underline-offset:3px}@keyframes toast-in{0%{opacity:0;transform:translateY(10px)}}.lock{position:fixed;inset:0;z-index:100;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:24px;background:radial-gradient(90% 60% at 50% 0%,var(--rose-soft),transparent 70%),var(--bg);text-align:center}.lock-mark{font-size:44px;color:var(--rose);line-height:1;margin-bottom:8px}.lock-title{font-family:var(--font-display);font-size:36px}.lock-hint{color:var(--ink-2);max-width:300px;font-size:14.5px}.lock-form{display:flex;flex-direction:column;align-items:center;gap:14px;margin-top:22px;width:100%;max-width:300px}.lock-form.busy{opacity:.6;pointer-events:none}.lock-code{text-align:center}.pin-dots{display:flex;gap:14px;height:16px}.pin-dots span{width:14px;height:14px;border-radius:50%;border:1.5px solid var(--rose);transition:background .15s}.pin-dots span.on{background:var(--rose)}.lock-error{min-height:20px;color:var(--danger);font-size:14px}.keypad{display:grid;grid-template-columns:repeat(3,72px);gap:14px 22px}.key{width:72px;height:72px;border:0;border-radius:50%;background:var(--surface);box-shadow:var(--shadow);font-size:26px;font-family:var(--font-display);font-weight:500;cursor:pointer;transition:transform .1s,background .15s}.key:active{transform:scale(.93);background:var(--rose-soft)}.key-soft{background:transparent;box-shadow:none;font-family:var(--font-body);font-size:22px;color:var(--ink-2)}.key-ok{background:var(--rose);color:var(--rose-ink);font-family:var(--font-body);font-size:24px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.stat{display:flex;flex-direction:column;align-items:center;padding:14px 4px;border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow)}.stat strong{font-family:var(--font-display);font-size:28px;line-height:1.1}.stat span{font-size:12px;line-height:1.3;color:var(--ink-2);text-align:center}.area-bars{display:flex;flex-direction:column;gap:16px}.area-bar-head{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:14.5px;margin-bottom:6px}.area-bar-head>span:first-child{display:flex;align-items:center;gap:8px;font-weight:500}.area-bar-head .muted{font-size:13px}.stack-bar{display:flex;height:8px;border-radius:999px;background:var(--surface-2);overflow:hidden}.s-done{background:var(--rose)}.s-missed{background:var(--line-strong)}.s-letgo{background:var(--gold);opacity:.6}.legend{display:flex;align-items:center;gap:6px;margin-top:16px;font-size:12.5px;color:var(--ink-2)}.legend span{width:10px;height:10px;border-radius:3px;margin-left:8px}.legend span:first-child{margin-left:0}.day-rows li+li{border-top:1px solid var(--line)}.day-rows a{display:flex;justify-content:space-between;padding:12px 2px;color:var(--ink);font-size:14.5px}.day-rows .muted{font-size:13px}.seg-links{margin-bottom:-4px}.list{padding:4px 0}.list-row{display:flex;align-items:center;gap:10px;padding:4px 16px 4px 6px;color:var(--ink)}.list-row+.list-row{border-top:1px solid var(--line)}.list-row.inactive{opacity:.55}.list-row>.icon{color:var(--ink-3)}.link-row{justify-content:space-between;padding:16px 20px}.list-main{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:12px 10px;border:0;background:none;text-align:left;cursor:pointer}.list-title{display:inline-flex;align-items:center;gap:8px;font-weight:500}.list-sub{display:inline-flex;align-items:center;gap:6px;color:var(--ink-2);font-size:13px}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 0}.setting-row+.setting-row{border-top:1px solid var(--line)}.row-actions{display:flex;gap:6px}.install-card{display:flex;align-items:center;gap:14px;border:0;text-align:left;color:var(--rose);cursor:pointer;background:linear-gradient(160deg,var(--blush),var(--surface))}.install-card span{display:flex;flex-direction:column;color:var(--ink)}.install-card small{color:var(--ink-2)}.sync-card{display:flex;justify-content:space-between;align-items:center;gap:12px}.sync-card div{display:flex;flex-direction:column}.sync-card small{color:var(--ink-2);font-size:13px}.log-list{display:flex;flex-direction:column;gap:10px}.log{padding:14px 16px;border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);font-size:14.5px}.log-head{display:flex;align-items:center;gap:8px;margin-bottom:6px;font-size:12.5px}.log-head time{margin-left:auto}.log-error{margin-top:6px;color:var(--danger);font-size:13px}.badge{padding:2px 9px;border-radius:999px;font-size:11.5px;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.badge-sent{background:color-mix(in srgb,var(--sage) 22%,transparent);color:var(--sage)}.badge-failed{background:color-mix(in srgb,var(--danger) 15%,transparent);color:var(--danger)}.badge-simulated{background:var(--surface-2);color:var(--ink-2)}.section-title{font-family:var(--font-display);font-size:22px;padding:4px 4px 10px}.section-title small{font-family:var(--font-body);font-size:13px;font-weight:400}.section>.capture{margin-bottom:12px}.section>.btn{margin-bottom:12px}.icon-btn-sm{width:32px;height:32px;border-radius:10px}.link-inline{color:var(--ink)}.link-inline>.icon{color:var(--ink-3)}.daily-card{display:flex;flex-direction:column;gap:8px;color:var(--ink)}.daily-label{display:flex;align-items:center;gap:6px;color:var(--rose);font-size:12.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase}.love-card{background:linear-gradient(160deg,var(--rose-soft),var(--surface) 75%)}.love-line,.manifest-line{font-family:var(--font-display);font-size:23px;line-height:1.3;font-style:italic}.manifest-card{background:linear-gradient(160deg,var(--blush),var(--surface) 70%)}.tip-card{background:linear-gradient(160deg,color-mix(in srgb,var(--sage) 14%,var(--surface)),var(--surface) 70%)}.tip-card .daily-label{color:var(--sage)}.tip-head{display:flex;justify-content:space-between;align-items:center;margin:-6px -8px -4px 0}.love-splash{width:100%;max-width:none;height:100%;max-height:none;margin:0;padding:0;border:0;background:radial-gradient(110% 70% at 50% 0%,var(--rose-soft),transparent 70%),var(--bg);color:var(--ink)}.love-splash[open]{animation:love-in .6s ease-out}.love-splash::backdrop{background:var(--bg)}@keyframes love-in{0%{opacity:0}}.love-splash-inner{min-height:100%;max-width:460px;margin:0 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;padding:40px 28px calc(40px + var(--safe-bottom));text-align:center}.love-splash-mark{font-size:46px;line-height:1;color:var(--rose);animation:love-beat 1.8s ease-in-out infinite}@keyframes love-beat{0%,to{transform:scale(1)}15%{transform:scale(1.15)}30%{transform:scale(1)}}.love-splash-hello{color:var(--rose);font-size:13px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.love-splash-text{font-family:var(--font-display);font-size:clamp(26px,7.5vw,34px);font-style:italic;line-height:1.35}.love-splash .btn{margin-top:10px;min-width:180px}.kitchen-day{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px;border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow)}.kitchen-day div{display:flex;flex-direction:column;align-items:center;text-align:center}.kitchen-day strong{font-family:var(--font-display);font-size:22px;line-height:1.1}.kitchen-day small{color:var(--ink-2);font-size:12.5px}.meal-card{display:flex;flex-direction:column;gap:8px}.meal-card.skipped{opacity:.6}.meal-card.skipped .meal-name{text-decoration:line-through;text-decoration-color:var(--line-strong)}.meal-card>.pill{align-self:flex-start}.meal-head{display:flex;justify-content:space-between;font-size:13px}.meal-slot{color:var(--rose);font-weight:600;letter-spacing:.04em;text-transform:uppercase;font-size:12px}.meal-name{font-family:var(--font-display);font-size:24px;line-height:1.15}.meal-ingredients{display:flex;flex-direction:column}.meal-ingredients li{display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding:7px 0;font-size:14.5px}.meal-ingredients li+li{border-top:1px solid var(--line)}.meal-ingredients b{font-weight:600;margin-left:4px}.meal-ingredients li>span:last-child{text-align:right;font-size:13.5px;white-space:nowrap}.plan-totals{display:grid;grid-template-columns:1fr 1fr;gap:6px 12px}.plan-totals div{display:flex;flex-direction:column}.plan-totals span{font-size:12.5px;color:var(--ink-2)}.plan-totals strong{font-family:var(--font-display);font-size:28px;line-height:1.1}.plan-totals .card-sub{grid-column:1 / -1}.add-meal{flex-direction:row;align-items:center;gap:8px;color:var(--rose);font-weight:500}.kitchen-actions .btn{width:100%}.bought-rows,.ingredient-rows{display:flex;flex-direction:column;gap:8px;margin-bottom:10px}.bought-row{display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:6px}.ingredient-row{display:grid;grid-template-columns:2fr 1fr;gap:6px}.bought-row .field,.ingredient-row .field{min-height:44px;padding:8px 10px}.count-rows{display:flex;flex-direction:column}.count-rows li{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:8px 0}.count-rows li+li{border-top:1px solid var(--line)}.count-rows label{display:flex;flex-direction:column}.count-rows small{color:var(--ink-2);font-size:12.5px}.weekdays-on{display:flex}.meal-sub{display:block}.meal-tag{margin-left:2px;padding:1px 7px;border-radius:999px;background:var(--surface-2);color:var(--ink-2);font-size:11px;font-weight:500}.plan-totals{margin-top:12px}.card .seg-links{margin-top:10px}.plan-good{border-left-color:var(--sage)}.swaps{display:flex;flex-direction:column;gap:12px}.swaps li{padding:12px 14px;border-radius:var(--radius-sm);background:var(--surface-2)}.swap-when{font-size:12px;font-weight:600;color:var(--ink-2);text-transform:uppercase;letter-spacing:.04em}.swap-what{margin:4px 0 8px;font-size:14.5px}.swap-what s{color:var(--ink-3)}.swap-foot{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:13px}.stock-totals{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:8px}.stock-totals div{display:flex;flex-direction:column;padding:10px 12px;border-radius:var(--radius-sm);background:var(--surface-2)}.stock-totals span{font-size:12px;color:var(--ink-2)}.stock-totals strong{font-size:17px;font-weight:600;font-variant-numeric:tabular-nums}.stock-totals small{font-size:12px;color:var(--ink-2)}.item-spent{margin-bottom:14px}.stock-qty{margin-left:6px;font-size:13px;font-weight:600;color:var(--ink-2)}.stock-spent{display:flex;flex-direction:column;align-items:flex-end;flex:none;text-align:right}.stock-spent strong{font-weight:600;font-variant-numeric:tabular-nums}.stock-spent small{font-size:11.5px;color:var(--ink-3)}.seg-sm{padding:3px}.seg-sm a{min-height:30px;padding:0 10px;font-size:12.5px}.missing-total{font-family:var(--font-display);font-size:34px;font-weight:600;margin-bottom:6px}.shopping-total{display:flex;justify-content:space-between;align-items:baseline;margin-top:10px;padding-top:10px;border-top:1px solid var(--line-strong)}.shopping-total strong{font-size:18px}.write-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.write-card{display:flex;flex-direction:column;align-items:flex-start;gap:2px;border:0;text-align:left;cursor:pointer;color:var(--rose)}.write-card strong{margin-top:10px;font-family:var(--font-display);font-size:24px;line-height:1.1;color:var(--ink)}.write-card small{color:var(--ink-2);font-size:13.5px}.manifest-list ul{display:flex;flex-direction:column;gap:8px;margin-top:12px}.manifest-list button{width:100%;padding:10px 14px;border:0;border-left:3px solid var(--gold);border-radius:var(--radius-sm);background:var(--surface-2);text-align:left;font-family:var(--font-display);font-size:19px;font-style:italic;cursor:pointer}.journal-list{display:flex;flex-direction:column;gap:10px}.journal-row{width:100%;display:flex;flex-direction:column;gap:6px;padding:14px 16px;border:0;border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);text-align:left;cursor:pointer}.journal-row.manifest .journal-excerpt{font-family:var(--font-display);font-size:18px;font-style:italic}.journal-meta{display:flex;align-items:center;gap:8px;font-size:12.5px}.journal-meta time{margin-left:auto}.journal-excerpt{color:var(--ink);font-size:14.5px;line-height:1.5;overflow-wrap:anywhere}.badge-vent{background:color-mix(in srgb,var(--ink-3) 18%,transparent);color:var(--ink-2)}.badge-manifest{background:color-mix(in srgb,var(--gold) 22%,transparent);color:var(--gold)}.journal-text{min-height:200px;font-size:16.5px;line-height:1.6}.manifest-text{min-height:96px;font-family:var(--font-display);font-size:20px;font-style:italic}.money-summary{display:flex;flex-direction:column;gap:2px}.money-summary .muted{font-size:14px}.money-left{font-family:var(--font-display);font-size:42px;font-weight:600;line-height:1.1}.money-left.negative{color:var(--danger)}.money-after{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:14px;padding:10px 14px;border-radius:var(--radius-sm);background:var(--surface-2)}.money-after span{display:flex;flex-direction:column;font-size:14px;font-weight:500}.money-after small{color:var(--ink-2);font-size:12.5px;font-weight:400}.money-after strong{font-family:var(--font-display);font-size:24px;white-space:nowrap}.money-after .negative{color:var(--danger)}.category-open{width:100%;padding:0;border:0;background:none;text-align:left;cursor:pointer}.category-open>span:last-child{display:inline-flex;align-items:center;gap:4px}.category-open .icon{color:var(--ink-3)}.money-edit{color:var(--ink-3);display:inline-flex}.tip-warn>span{background:color-mix(in srgb,var(--danger) 15%,transparent);color:var(--danger)}.tip-good>span{background:color-mix(in srgb,var(--sage) 22%,transparent);color:var(--sage)}.tip-info>span{background:var(--surface-2);color:var(--ink-2)}.breakdown-title{font-family:var(--font-display);font-size:21px;margin:4px 0 10px}.plan{display:flex;flex-direction:column;gap:10px;padding:16px;border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);border-left:3px solid var(--sage)}.plan-ok{border-left-color:var(--gold)}.plan-over,.plan-tight{border-left-color:var(--danger)}.plan-total{display:flex;align-items:center;gap:14px}.plan-total strong{font-family:var(--font-display);font-size:36px;line-height:1}.plan-over .plan-total strong,.plan-tight .plan-total strong{color:var(--danger)}.plan-total span{font-size:13px;color:var(--ink-2);line-height:1.4}.plan-bar{height:8px;border-radius:999px;background:var(--surface-2);overflow:hidden}.plan-bar span{display:block;height:100%;border-radius:inherit;background:var(--sage)}.plan-ok .plan-bar span{background:var(--gold)}.plan-over .plan-bar span,.plan-tight .plan-bar span{background:var(--danger)}.plan>p{font-size:14px;line-height:1.5}.plan-rows{display:flex;flex-direction:column;margin:10px 0 20px}.plan-rows li{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 2px}.plan-rows li+li{border-top:1px solid var(--line)}.plan-name,.plan-share{display:flex;flex-direction:column;font-size:14.5px}.plan-name small,.plan-share small{font-size:12px;color:var(--ink-2)}.plan-share{align-items:flex-end;text-align:right;font-size:13px;color:var(--ink-2)}.plan-share b{color:var(--ink);font-size:15px}.guide-explain{margin-top:6px;padding:14px 16px;border-radius:var(--radius);background:var(--surface-2);font-size:14px;line-height:1.55}.guide-explain summary{font-weight:600;cursor:pointer}.guide-explain p{margin-top:10px;color:var(--ink-2)}.guide-list{margin-top:10px}.guide-list li{display:flex;justify-content:space-between;gap:10px;padding:6px 0}.guide-list li+li{border-top:1px solid var(--line)}.guide-list small{color:var(--ink-2);margin-left:4px}.money-repaid{color:var(--sage)}.loan-summary{display:flex;flex-direction:column;gap:8px;margin-bottom:14px}.loan-note{font-size:14px;color:var(--ink-2);font-style:italic}.loan-actions{flex-wrap:wrap;margin-bottom:16px}.loans-closed{margin-top:10px}.loan-buttons{margin-bottom:6px}.loan-buttons .pill{justify-content:center}.loan-group{display:flex;justify-content:space-between;margin:14px 0 2px;font-size:13px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-2)}.loan-group span{text-transform:none;letter-spacing:0;color:var(--ink)}.loans-closed>summary h2{font-size:17px}.money-tabs{position:sticky;top:calc(env(safe-area-inset-top,0px) + 8px);z-index:5;box-shadow:var(--shadow)}.money-tabs a{font-size:13.5px}.money-carried{display:flex;align-items:center;gap:5px;color:var(--ink-2);font-size:13px}.money-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}.money-stats div{display:flex;flex-direction:column;gap:2px;min-width:0}.money-stats span{font-size:12px;color:var(--ink-2);letter-spacing:.02em}.money-stats strong{font-size:15px;font-weight:600;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.tips{display:flex;flex-direction:column;gap:12px}.tips li{display:flex;gap:10px;align-items:flex-start;font-size:14.5px;line-height:1.5}.tips li>span{flex:none;display:grid;place-items:center;width:22px;height:22px;margin-top:1px;border-radius:50%;font-size:12px;font-weight:700}.card .tips+.card-sub{margin-top:12px}.loan-moves{justify-content:center;text-align:center}.card-head h2+.pill,.card-head .pill{flex:none}.check-more{width:100%;margin-top:14px}.breakdown-totals{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:8px;margin-bottom:16px}.breakdown-totals div{display:flex;flex-direction:column;align-items:center;padding:12px 6px;border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);text-align:center}.breakdown-totals strong{font-family:var(--font-display);font-size:24px;line-height:1.1}.breakdown-totals span{font-size:12px;color:var(--ink-2)}.breakdown{display:flex;flex-direction:column;gap:10px;margin-bottom:14px}.breakdown li{display:flex;flex-direction:column;gap:6px;padding:14px 16px;border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);border-left:3px solid var(--sage)}.breakdown li.status-close{border-left-color:var(--gold)}.breakdown li.status-over,.breakdown li.status-above-guide{border-left-color:var(--danger)}.breakdown-head{display:flex;justify-content:space-between;align-items:center;gap:8px}.breakdown-status{font-size:12px;font-weight:600;color:var(--sage)}.status-close .breakdown-status{color:var(--gold)}.status-over .breakdown-status,.status-above-guide .breakdown-status{color:var(--danger)}.breakdown-line{display:grid;grid-template-columns:52px 1fr 44px;align-items:center;gap:10px;font-size:13px;color:var(--ink-2)}.breakdown-line b{text-align:right;color:var(--ink);font-variant-numeric:tabular-nums}.breakdown-sub{font-size:12.5px;color:var(--ink-2);margin-top:-2px}.guide-bar{position:relative;overflow:visible}.guide-bar>span{border-radius:999px}.guide-bar:after{content:"";position:absolute;top:-3px;bottom:-3px;left:var(--guide);width:2px;border-radius:2px;background:var(--ink-2)}.budget-left{margin-top:4px;font-size:12.5px;color:var(--ink-2);text-align:right}.money-actions .btn{width:100%}.s-over{background:var(--danger)}.s-share{opacity:.55}.over-budget{color:var(--danger);font-weight:500}.money-row{flex-direction:row;align-items:center;gap:12px}.money-emoji{font-size:22px;width:30px;text-align:center;flex:none}.money-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.money-text .list-title{overflow-wrap:break-word}.money-amount{font-weight:600;white-space:nowrap;font-variant-numeric:tabular-nums}.money-income{color:var(--sage)}.money-saving{color:var(--gold)}.amount-field{display:flex;align-items:center;gap:10px}.amount-currency{font-family:var(--font-display);font-size:26px;color:var(--ink-2)}.amount-field .field{font-family:var(--font-display);font-size:30px;font-weight:600;min-height:60px}.form .cats,.form .goal-pick{display:none}.form[data-kind=expense] .cats-expense,.form[data-kind=income] .cats-income{display:flex}.form[data-kind=saving] .goal-pick{display:grid}.budget-inputs{display:flex;flex-direction:column}.budget-inputs li{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:6px 0}.budget-inputs li+li{border-top:1px solid var(--line)}.custom-budgets{margin-bottom:10px}.custom-budget .field:not(.field-sm){flex:1;min-height:40px;padding:8px 12px}.form .other-name{display:none}.form[data-kind=expense]:has(input[name=cat_expense][value=other]:checked) .other-name{display:grid}.goal-list{display:flex;flex-direction:column;gap:10px}.goal-card{display:flex;flex-direction:column;gap:6px;border-left:4px solid var(--c);color:var(--ink)}.goal-title{font-family:var(--font-display);font-size:23px;font-weight:600;line-height:1.2}.goal-meta{display:flex;flex-wrap:wrap;align-items:center;gap:4px 14px;color:var(--ink-2);font-size:13.5px}.goal-meta span{display:inline-flex;align-items:center;gap:6px}.goal-card .progress-bar,.goal-summary .progress-bar{flex:none;margin-top:4px}.goal-summary{display:flex;flex-direction:column;gap:10px;border-left:4px solid var(--c)}.goal-why{font-family:var(--font-display);font-size:20px;font-style:italic;line-height:1.35}.goal-amount{font-size:15px;color:var(--ink-2)}.goal-amount strong{color:var(--ink);font-size:18px}.goal-summary .row-actions{flex-wrap:wrap;margin-top:4px}.goal-card-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.goal-figure{display:flex;flex-direction:column;align-items:flex-end;flex:none}.goal-figure strong{font-size:16px;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}.goal-figure small{font-size:12px;color:var(--ink-2)}.goal-card .plan-bar{display:block}.goal-money{display:flex;flex-direction:column;gap:8px}.goal-money .btn{margin-top:6px}.goal-money .breakdown-title{margin-top:10px}.goal-pace{display:flex;align-items:baseline;gap:6px;font-size:14px;color:var(--ink-2)}.goal-pace strong{color:var(--ink)}.goal-steps .card-head{margin-bottom:10px}.goal-steps .plan-bar{margin-bottom:14px}.goal-steps .capture{margin-bottom:8px}.steps{display:flex;flex-direction:column}.step{display:flex;align-items:center;gap:4px}.step+.step{border-top:1px solid var(--line)}.step .check{margin-left:-10px}.step.done .check .icon{background:var(--rose);border-color:var(--rose);color:var(--rose-ink)}.step-title{flex:1;min-width:0;padding:12px 4px;border:0;background:none;text-align:left;font-weight:500;overflow-wrap:anywhere;cursor:pointer}.step.done .step-title,.step.closed .step-title{color:var(--ink-3);text-decoration:line-through;text-decoration-color:var(--line-strong)}.step-day{min-height:28px;padding:0 10px;font-size:12.5px}.steps-done{margin-top:8px}.steps-done>summary h2{font-size:17px}.goal-close{display:flex;justify-content:center;gap:8px;flex-wrap:wrap}.form .goal-money-field,.form .goal-kind-hint{display:none}.form[data-goal-kind=money] .goal-money-field,.form[data-goal-kind=money] .goal-kind-hint[data-for=money],.form[data-goal-kind=do] .goal-kind-hint[data-for=do]{display:flex}.review-facts ul{display:flex;flex-direction:column;gap:10px;font-size:14.5px}.review-facts li{display:flex;align-items:center;gap:10px}.review-facts .icon{color:var(--rose)}.review-answer+.review-answer{margin-top:14px}.review-answer{margin-bottom:14px}.review-answer h3{font-size:13px;font-weight:600;color:var(--ink-2);letter-spacing:.02em;margin-bottom:4px}.review-answer p{white-space:pre-line}.rating{display:flex;flex-wrap:wrap;gap:6px}.rating legend{width:100%}.rating-flower input{position:absolute;opacity:0;pointer-events:none}.rating-flower span{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;border:1px solid var(--line-strong);font-size:22px;color:var(--ink-3);cursor:pointer}.rating:has(input:checked) .rating-flower span{color:var(--rose);background:var(--rose-soft);border-color:var(--rose)}.rating-flower:has(input:checked)~.rating-flower span{color:var(--ink-3);background:none;border-color:var(--line-strong)}.rating-flower input:focus-visible+span{outline:2px solid var(--rose);outline-offset:2px}.rating-shown{color:var(--rose);letter-spacing:2px}.love-item{font-weight:400;line-height:1.45;overflow-wrap:anywhere}button,a,input,select,label,summary{touch-action:manipulation}.page-head>div,.card-head>div,.money-text,.list-main{min-width:0}.title,.goal-title,.meal-name,.list-title{overflow-wrap:break-word}.card-head,.row-actions,.swap-foot,.goal-meta{flex-wrap:wrap}.setting-row .field-sm{flex:none}.seg-links{overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}.seg-links::-webkit-scrollbar{display:none}.seg-links a{flex:1 0 auto;padding:0 12px;white-space:nowrap}.tabbar a span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.money-left{font-size:clamp(30px,10vw,42px);overflow-wrap:anywhere}.plan-totals strong{font-size:clamp(21px,6.5vw,28px);overflow-wrap:anywhere}.plan-total strong{font-size:clamp(26px,8vw,36px)}.missing-total{font-size:clamp(26px,8vw,34px)}.quick-grid{grid-template-columns:repeat(3,1fr);gap:8px}.quick-item{padding:16px 6px;gap:6px}.quick-item span{font-size:13.5px;line-height:1.25;text-align:center}@media(max-width:420px){:root{--gutter: 16px}.view{gap:16px}.card{padding:16px;border-radius:20px}.sheet-inner{padding-left:16px;padding-right:16px}.card-head h2,.card-title{font-size:22px}.bought-row{grid-template-columns:1fr 1fr}.bought-row select{grid-column:1 / -1}.money-stats strong{font-size:14px}.stats{gap:6px}.stat{padding:12px 2px}.stat strong{font-size:24px}.stat span{font-size:11px}.form-actions .btn-primary{min-width:120px}.breakdown-line{grid-template-columns:46px 1fr 40px;gap:8px}.write-card strong{font-size:21px}.meal-ingredients li>span:first-child small{display:block}}@media(max-width:380px){.tabbar{gap:0;padding:6px 4px var(--safe-bottom)}.tabbar a{font-size:10px;letter-spacing:0;gap:2px}.tabbar .icon{width:20px;height:20px}.fab{width:54px;height:54px;border-radius:19px;right:14px}.title{font-size:30px}.seg span,.seg a{font-size:13px}.row:not(.money-actions):not(.kitchen-actions):not(.loan-buttons){grid-template-columns:1fr}.weekday span{width:36px;height:36px}.quick-item{padding:14px 4px}.quick-item span{font-size:12.5px}.money-stats{gap:4px}.money-stats strong{font-size:13px}.sheet-head h2{font-size:23px}.money-after{flex-direction:column;align-items:flex-start;gap:2px}.money-tabs a{padding:0 7px;font-size:13px}.plan-total{flex-direction:column;align-items:flex-start;gap:4px}.money-row{gap:8px}.money-emoji{width:24px;font-size:19px}}@media(max-height:700px){.lock{justify-content:flex-start;overflow-y:auto;padding-top:calc(env(safe-area-inset-top,0px) + 32px)}.lock-mark{font-size:36px;margin-bottom:4px}.lock-title{font-size:30px}.lock-form{margin-top:14px;gap:10px}.keypad{grid-template-columns:repeat(3,62px);gap:10px 20px}.key{width:62px;height:62px;font-size:23px}.love-splash-inner{justify-content:flex-start;padding-top:48px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
