@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-vietnamese-wght-normal-BUzh504Q.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-ext-wght-normal-CcLUaPy7.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-wght-normal-DLoelf7F.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Figtree Variable;font-style:normal;font-display:swap;font-weight:300 900;src:url(/assets/figtree-latin-ext-wght-normal-DCwSJGxG.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Figtree Variable;font-style:normal;font-display:swap;font-weight:300 900;src:url(/assets/figtree-latin-wght-normal-D_ZTVpCC.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Figtree Variable;font-style:italic;font-display:swap;font-weight:300 900;src:url(/assets/figtree-latin-ext-wght-italic-Q0qr0lrZ.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Figtree Variable;font-style:italic;font-display:swap;font-weight:300 900;src:url(/assets/figtree-latin-wght-italic-BEAWuiTz.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root,[data-theme=light]{--surface:oklch(96.8% .007 45);--surface-raised:oklch(99.5% .003 45);--surface-sunken:oklch(94% .01 45);--line:oklch(88% .012 45);--line-strong:oklch(60% .02 45);--ink:oklch(25% .02 45);--ink-muted:oklch(50% .02 45);--on-accent:oklch(100% 0 0);--accent:var(--plan);--accent-tint:var(--plan-tint);--focus:var(--accent);--plan:oklch(50% .12 150);--plan-tint:oklch(93.5% .035 150);--fin:oklch(50% .12 255);--fin-tint:oklch(93.5% .035 255);--namen:oklch(50% .12 15);--namen-tint:oklch(93.5% .035 15);--person-1:oklch(50% .12 290);--person-2:oklch(48% .1 200);--success:oklch(50% .12 150);--success-tint:oklch(93.5% .035 150);--warning:oklch(48% .12 75);--warning-tint:oklch(93.5% .035 75);--danger:oklch(50% .12 25);--danger-tint:oklch(93.5% .035 25);--chart-1:oklch(50% .12 255);--chart-2:oklch(62% .15 50);--chart-3:oklch(56% .1 185);--chart-4:oklch(52% .14 305);--chart-5:oklch(66% .13 85);--chart-6:oklch(55% .14 0);--shadow-card:0px 1px 2px 0px #4a342812, 0px 6px 18px 0px #4a342814;--shadow-raised:0px 8px 32px 0px #4a342829}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--surface:oklch(19% .01 45);--surface-raised:oklch(24% .012 45);--surface-sunken:oklch(28% .014 45);--line:oklch(34% .014 45);--line-strong:oklch(60% .015 45);--ink:oklch(95% .006 45);--ink-muted:oklch(75% .015 45);--on-accent:oklch(20% .01 45);--accent:var(--plan);--accent-tint:var(--plan-tint);--focus:var(--accent);--plan:oklch(80% .11 150);--plan-tint:oklch(30% .045 150);--fin:oklch(80% .11 255);--fin-tint:oklch(30% .045 255);--namen:oklch(80% .11 15);--namen-tint:oklch(30% .045 15);--person-1:oklch(80% .11 290);--person-2:oklch(80% .1 200);--success:oklch(80% .11 150);--success-tint:oklch(30% .045 150);--warning:oklch(82% .11 75);--warning-tint:oklch(30% .045 75);--danger:oklch(80% .11 25);--danger-tint:oklch(30% .045 25);--chart-1:oklch(75% .11 255);--chart-2:oklch(74% .14 50);--chart-3:oklch(74% .1 185);--chart-4:oklch(72% .13 305);--chart-5:oklch(83% .13 85);--chart-6:oklch(73% .13 0);--shadow-card:none;--shadow-raised:0px 8px 32px 0px #00000080;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}[data-theme=dark]{--surface:oklch(19% .01 45);--surface-raised:oklch(24% .012 45);--surface-sunken:oklch(28% .014 45);--line:oklch(34% .014 45);--line-strong:oklch(60% .015 45);--ink:oklch(95% .006 45);--ink-muted:oklch(75% .015 45);--on-accent:oklch(20% .01 45);--accent:var(--plan);--accent-tint:var(--plan-tint);--focus:var(--accent);--plan:oklch(80% .11 150);--plan-tint:oklch(30% .045 150);--fin:oklch(80% .11 255);--fin-tint:oklch(30% .045 255);--namen:oklch(80% .11 15);--namen-tint:oklch(30% .045 15);--person-1:oklch(80% .11 290);--person-2:oklch(80% .1 200);--success:oklch(80% .11 150);--success-tint:oklch(30% .045 150);--warning:oklch(82% .11 75);--warning-tint:oklch(30% .045 75);--danger:oklch(80% .11 25);--danger-tint:oklch(30% .045 25);--chart-1:oklch(75% .11 255);--chart-2:oklch(74% .14 50);--chart-3:oklch(74% .1 185);--chart-4:oklch(72% .13 305);--chart-5:oklch(83% .13 85);--chart-6:oklch(73% .13 0);--shadow-card:none;--shadow-raised:0px 8px 32px 0px #00000080;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root{--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--radius-xs:6px;--radius-sm:10px;--radius-md:14px;--radius-lg:18px;--radius-xl:22px;--radius-2xl:28px;--radius-full:999px;--touch-min:44px;--control-height:48px;--control-height-compact:40px;--tabbar-height:64px;--dur-fast:.12s;--dur-base:.22s;--dur-spring:.38s;--ease-out:cubic-bezier(.2, 0, 0, 1);--ease-spring:cubic-bezier(.34, 1.4, .64, 1);--font-display:"Bricolage Grotesque Variable", "Bricolage Grotesque", "Figtree Variable", Figtree, system-ui, sans-serif;--font-sans:"Figtree Variable", Figtree, system-ui, -apple-system, "Segoe UI", sans-serif}.st-text-display-xl{font-family:var(--font-display);letter-spacing:-.02em;font-size:3rem;font-weight:800;line-height:1.042}.st-text-display-l{font-family:var(--font-display);letter-spacing:-.02em;font-size:1.875rem;font-weight:800;line-height:1.2}.st-text-title{font-family:var(--font-display);letter-spacing:-.01em;font-size:1.375rem;font-weight:700;line-height:1.273}.st-text-heading{font-family:var(--font-sans);font-size:1.0625rem;font-weight:600;line-height:1.412}.st-text-body{font-family:var(--font-sans);font-size:1rem;font-weight:400;line-height:1.5}.st-text-body-strong{font-family:var(--font-sans);font-size:1rem;font-weight:600;line-height:1.5}.st-text-label{font-family:var(--font-sans);font-size:.9375rem;font-weight:600;line-height:1.333}.st-text-caption{font-family:var(--font-sans);font-size:.8125rem;font-weight:500;line-height:1.385}.st-text-overline{font-family:var(--font-sans);letter-spacing:.06em;text-transform:uppercase;font-size:.75rem;font-weight:700;line-height:1.333}.st-text-number-xl{font-family:var(--font-sans);letter-spacing:-.01em;font-variant-numeric:tabular-nums;font-size:2.125rem;font-weight:700;line-height:1.176}.st-text-number{font-family:var(--font-sans);font-variant-numeric:tabular-nums;font-size:1rem;font-weight:600;line-height:1.5}[data-app=plan]{--accent:var(--plan);--accent-tint:var(--plan-tint);--focus:var(--plan)}[data-app=fin]{--accent:var(--fin);--accent-tint:var(--fin-tint);--focus:var(--fin)}[data-app=namen]{--accent:var(--namen);--accent-tint:var(--namen-tint);--focus:var(--namen)}:root{--st-pad-y:var(--space-3);--st-pad-x:var(--space-4);--st-gap:var(--space-2);--st-control:var(--control-height);--st-card-radius:var(--radius-xl);--st-item-radius:var(--radius-lg)}[data-density=compact]{--st-pad-y:var(--space-2);--st-pad-x:var(--space-3);--st-gap:var(--space-1);--st-control:var(--control-height-compact);--st-card-radius:var(--radius-sm);--st-item-radius:var(--radius-sm)}body{font-family:var(--font-sans);background:var(--surface);color:var(--ink);-webkit-font-smoothing:antialiased;margin:0;font-size:16px;line-height:24px}.st-demo{padding:var(--space-4);gap:var(--space-3);flex-wrap:wrap;align-items:center;display:flex}.st-demo.col{flex-direction:column;align-items:stretch;max-width:380px}.st-num{font-variant-numeric:tabular-nums}.st-visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.st-focusable:focus-visible,.st-btn:focus-visible,.st-chip:focus-visible,.st-seg button:focus-visible,.st-tab:focus-visible,.st-check input:focus-visible+.st-check-box,.st-field input:focus-visible{box-shadow:0 0 0 2px var(--surface), 0 0 0 4px var(--focus);outline:none}.st-icon{fill:none;stroke:currentColor;stroke-width:1.9px;stroke-linecap:round;stroke-linejoin:round;flex:none}.st-icon.filled{fill:currentColor;stroke:none}.st-btn{font:inherit;justify-content:center;align-items:center;gap:var(--space-2);min-height:var(--st-control);min-width:var(--touch-min);padding:0 var(--space-5);border-radius:var(--radius-full);cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out);border:1.5px solid #0000;font-size:15px;font-weight:600;line-height:20px;display:inline-flex}.st-btn:active{transform:scale(.97)}.st-btn[disabled]{opacity:.45;cursor:not-allowed;transform:none}.st-btn-primary{background:var(--accent);color:var(--on-accent)}.st-btn-secondary{background:var(--surface-raised);color:var(--ink);border-color:var(--line-strong)}.st-btn-ghost{color:var(--accent);background:0 0}.st-btn-ghost:hover{background:var(--accent-tint)}.st-btn-danger{background:var(--danger);color:var(--on-accent)}.st-btn-sm{min-height:var(--touch-min);padding:0 var(--space-4);font-size:14px}.st-btn-icon{width:var(--st-control);padding:0}.st-chip{font:inherit;align-items:center;gap:var(--space-1);min-height:var(--touch-min);padding:0 var(--space-4);border-radius:var(--radius-full);border:1.5px solid var(--line-strong);background:var(--surface-raised);color:var(--ink);cursor:pointer;font-size:14px;font-weight:600;line-height:20px;display:inline-flex}.st-chip[aria-pressed=true]{background:var(--accent-tint);border-color:var(--accent)}.st-header .st-chip[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.st-chip-tag{min-height:0;padding:2px var(--space-3);background:var(--surface-sunken);cursor:default;border:0;font-size:13px;line-height:18px}.st-chip-tag.tone-accent{background:var(--accent-tint)}.st-seg{background:var(--surface-sunken);border-radius:var(--radius-full);border:1px solid var(--line-strong);gap:4px;padding:4px;display:inline-flex}.st-seg button{font:inherit;min-height:40px;padding:0 var(--space-4);border-radius:var(--radius-full);color:var(--ink-muted);cursor:pointer;background:0 0;border:0;font-size:14px;font-weight:600}.st-seg button[aria-pressed=true]{background:var(--surface-raised);color:var(--ink);box-shadow:var(--shadow-card)}.st-field{gap:6px;display:grid}.st-field label{font-size:15px;font-weight:600;line-height:20px}.st-field input{font:inherit;min-height:var(--st-control);padding:0 var(--space-4);border-radius:var(--radius-md);border:1.5px solid var(--line-strong);background:var(--surface-raised);color:var(--ink);font-size:16px}.st-field input::placeholder{color:var(--ink-muted)}.st-field .hint{color:var(--ink-muted);font-size:13px;line-height:18px}.st-field.invalid input{border-color:var(--danger)}.st-field .error{color:var(--danger);gap:var(--space-1);align-items:center;font-size:13px;font-weight:600;line-height:18px;display:flex}.st-check{align-items:center;gap:var(--space-3);min-height:var(--touch-min);cursor:pointer;display:inline-flex;position:relative}.st-check input{opacity:0;width:var(--touch-min);height:var(--touch-min);cursor:pointer;margin:0;position:absolute;left:-10px}.st-check-box{border:2px solid var(--line-strong);color:#0000;width:24px;height:24px;transition:background-color var(--dur-fast) var(--ease-out), transform var(--dur-spring) var(--ease-spring);border-radius:50%;flex:none;place-items:center;display:grid}.st-check input:checked+.st-check-box{background:var(--accent);border-color:var(--accent);color:var(--on-accent);transform:scale(1.06)}.st-avatar{border-radius:var(--radius-full);width:32px;height:32px;color:var(--on-accent);flex:none;place-items:center;font-size:13px;font-weight:700;display:inline-grid}.st-avatar.p1{background:var(--person-1)}.st-avatar.p2{background:var(--person-2)}.st-avatar.sm{width:24px;height:24px;font-size:11px}.st-avatars{display:inline-flex}.st-avatars .st-avatar+.st-avatar{margin-left:calc(var(--space-2) * -1);box-shadow:0 0 0 2px var(--surface-raised)}.st-avatars .st-avatar.sm+.st-avatar.sm{margin-left:calc(var(--space-1) * -1)}.st-card{background:var(--surface-raised);border-radius:var(--st-card-radius);box-shadow:var(--shadow-card);padding:var(--space-4) var(--space-5)}.st-card.tint{background:var(--accent-tint);box-shadow:none}[data-density=compact] .st-card{box-shadow:none;border:1px solid var(--line);padding:var(--space-3) var(--space-3)}.st-header{background:var(--accent-tint);border-radius:0 0 var(--radius-2xl) var(--radius-2xl);padding:var(--space-10) var(--space-5) var(--space-5);gap:2px;display:grid}.st-header .overline{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-muted);font-size:12px;font-weight:700;line-height:16px}.st-header h1{font-family:var(--font-display);letter-spacing:-.02em;-webkit-hyphens:auto;hyphens:auto;margin:0;font-size:30px;font-weight:800;line-height:36px}.st-header .sub{color:var(--ink-muted);font-size:14px;line-height:20px}.st-header .st-progress{margin-top:var(--space-3)}[data-density=compact] .st-header{padding:var(--space-6) var(--space-4) var(--space-4)}[data-density=compact] .st-header h1{font-size:26px;line-height:32px}.st-progress{border-radius:var(--radius-full);background:var(--surface-sunken);height:8px;overflow:hidden}.st-progress>span{border-radius:inherit;background:var(--accent);height:100%;transition:width var(--dur-spring) var(--ease-spring);display:block}.st-header .st-progress{background:var(--surface-raised)}.st-tabbar{min-height:var(--tabbar-height);padding:6px var(--space-2) calc(6px + env(safe-area-inset-bottom,0px));background:var(--surface-raised);box-shadow:0 -1px 0 var(--line);grid-auto-columns:1fr;grid-auto-flow:column;display:grid}.st-tab{font:inherit;min-height:var(--touch-min);color:var(--ink-muted);border-radius:var(--radius-full);cursor:pointer;background:0 0;border:0;align-content:center;justify-items:center;gap:2px;font-size:12px;font-weight:600;line-height:16px;display:grid;position:relative}.st-tab[aria-current=page]{color:var(--ink);background:var(--accent-tint)}.st-tab[aria-current=page] .st-icon{color:var(--accent)}.st-tab .badge{border-radius:var(--radius-full);background:var(--danger);min-width:18px;height:18px;color:var(--on-accent);font-variant-numeric:tabular-nums;padding:0 5px;font-size:11px;line-height:18px;position:absolute;top:2px;left:calc(50% + 6px)}.st-todo{align-items:center;gap:var(--space-3);padding:var(--st-pad-y) var(--space-4) var(--st-pad-y) var(--space-3);background:var(--surface-raised);border-radius:var(--st-item-radius);min-height:60px;box-shadow:var(--shadow-card);display:flex}.st-todo .text{flex:1;min-width:0;display:grid}.st-todo .title{overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto;font-size:16px;font-weight:600;line-height:22px}.st-todo .meta{color:var(--ink-muted);font-size:13px;line-height:18px}.st-todo .meta.due{color:var(--accent);font-weight:600}.st-todo.done .title{color:var(--ink-muted);font-weight:400;text-decoration:line-through;text-decoration-thickness:1px}.st-list{gap:var(--st-gap);display:grid}.st-stat{gap:2px;display:grid}.st-stat .label{color:var(--ink-muted);font-size:13px;font-weight:500;line-height:18px}.st-stat .value{letter-spacing:-.01em;font-variant-numeric:tabular-nums;font-size:34px;font-weight:700;line-height:40px}.st-stat .delta{align-items:center;gap:var(--space-1);font-size:13px;font-weight:600;line-height:18px;display:inline-flex}.st-stat .delta.up{color:var(--success)}.st-stat .delta.down{color:var(--danger)}[data-density=compact] .st-stat .value{font-size:24px;line-height:30px}.st-budget{gap:var(--space-3);display:grid}.st-budget .row{align-items:center;gap:var(--space-3);grid-template-columns:minmax(84px,7.5em) 1fr auto;font-size:14px;line-height:20px;display:grid}.st-budget .cat{overflow-wrap:anywhere}.st-budget .track{background:var(--surface-sunken);border-radius:var(--radius-xs);height:12px;position:relative}.st-budget .fill{background:var(--accent);border-radius:var(--radius-xs);position:absolute;inset:0 auto 0 0}.st-budget .row.over .fill{background:var(--danger)}.st-budget .mark{background:var(--ink);border-radius:1px;width:2px;margin-left:-1px;position:absolute;top:-4px;bottom:-4px}.st-budget .val{text-align:right;font-variant-numeric:tabular-nums;min-width:4.5em;font-weight:600}.st-budget .row.over .val{color:var(--danger)}.st-budget .legend{gap:var(--space-4);color:var(--ink-muted);flex-wrap:wrap;font-size:13px;display:flex}.st-budget .legend span{align-items:center;gap:6px;display:inline-flex}.st-budget .legend i{background:var(--accent);border-radius:3px;width:14px;height:10px;display:inline-block}.st-budget .legend i.m{background:var(--ink);width:2px;height:14px}.st-budget .legend i.o{background:var(--danger)}.st-banner{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);font-size:14px;line-height:20px;display:flex}.st-banner .msg{flex:1;min-width:0}.st-banner.offline{background:var(--warning-tint)}.st-banner.offline .st-icon{color:var(--warning)}.st-banner.sync{background:var(--surface-sunken)}.st-banner.sync .st-icon{color:var(--ink-muted)}.st-banner.error{background:var(--danger-tint)}.st-banner.error .st-icon{color:var(--danger)}.st-banner.info{background:var(--accent-tint)}.st-banner.info .st-icon{color:var(--accent)}.st-banner .st-btn{min-height:36px;padding:0 var(--space-3)}.st-banner .st-btn-ghost{color:var(--ink);text-underline-offset:3px;text-decoration:underline}.st-banner .st-btn-ghost:hover{background:0 0}.st-toast{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-2) var(--space-2) var(--space-5);border-radius:var(--radius-full);background:var(--ink);min-height:52px;color:var(--surface);box-shadow:var(--shadow-raised);max-width:420px;font-size:15px;line-height:20px;display:flex}.st-toast .msg{flex:1}.st-toast .st-btn-ghost{color:var(--surface);min-height:40px;padding:0 var(--space-4)}.st-toast .st-btn-ghost:hover{background:0 0;text-decoration:underline}.st-moment{align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5);border-radius:var(--radius-xl);background:var(--accent-tint);animation:st-pop var(--dur-spring) var(--ease-spring) both;display:flex}.st-moment .badge{border-radius:var(--radius-full);background:var(--accent);width:44px;height:44px;color:var(--on-accent);flex:none;place-items:center;display:grid}.st-moment .title{font-family:var(--font-display);letter-spacing:-.01em;font-size:20px;font-weight:800;line-height:26px}.st-moment .body{color:var(--ink);font-size:15px;line-height:20px}@keyframes st-pop{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.st-empty{text-align:center;justify-items:center;gap:var(--space-2);padding:var(--space-8) var(--space-6);display:grid}.st-empty .disc{border-radius:var(--radius-full);background:var(--accent-tint);width:72px;height:72px;color:var(--accent);margin-bottom:var(--space-2);place-items:center;display:grid}.st-empty h3{font-family:var(--font-display);margin:0;font-size:22px;font-weight:700;line-height:28px}.st-empty p{color:var(--ink-muted);max-width:32ch;margin:0}.st-empty .st-btn{margin-top:var(--space-3)}.st-sheet{background:var(--surface-raised);border-radius:var(--radius-2xl) var(--radius-2xl) 0 0;box-shadow:var(--shadow-raised);padding:var(--space-2) var(--space-5) calc(var(--space-5) + env(safe-area-inset-bottom,0px));gap:var(--space-4);display:grid}.st-sheet .grip{border-radius:var(--radius-full);background:var(--line-strong);width:40px;height:5px;margin-top:var(--space-1);justify-self:center}.st-sheet h2{font-family:var(--font-display);margin:0;font-size:22px;font-weight:700;line-height:28px}.st-sheet .actions{gap:var(--space-3);justify-content:flex-end;display:flex}.st-install{gap:var(--space-3);display:grid}.st-install h3{gap:var(--space-2);align-items:center;margin:0;font-size:17px;font-weight:600;line-height:24px;display:flex}.st-install h3 .st-icon{color:var(--accent)}.st-install p{color:var(--ink-muted);margin:0;font-size:15px;line-height:22px}.st-install ol{gap:6px;margin:0;padding-left:22px;font-size:15px;line-height:22px;display:grid}@media (prefers-reduced-motion:reduce){.st-btn,.st-check-box,.st-progress>span{transition:none}.st-moment{animation:none}.st-btn:active{transform:none}}:root{--tabbar-h:var(--tabbar-height);--page-pad:var(--space-4);--sidebar-w:232px;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}*{box-sizing:border-box}html,body{background:var(--surface);color:var(--ink);margin:0}button,input,select,textarea{font:inherit;color:inherit}h1{font-family:var(--font-display);letter-spacing:-.02em;-webkit-hyphens:auto;hyphens:auto;text-wrap:balance;margin:0;font-size:1.875rem;font-weight:800;line-height:1.2}h2{margin:0 0 var(--space-2);font-family:var(--font-display);letter-spacing:-.01em;font-size:1.25rem;font-weight:700;line-height:1.3}h3{margin:0 0 var(--space-2);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-muted);align-items:center;gap:var(--space-1);font-size:.75rem;font-weight:700;line-height:1.33;display:flex}.muted{color:var(--ink-muted)}.small{font-size:.875rem;line-height:1.4}.center{text-align:center}.error-text{color:var(--danger)}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}:where(a,button,input,textarea,select,label):focus-visible{box-shadow:0 0 0 2px var(--surface), 0 0 0 4px var(--focus);outline:none}.app{min-height:100dvh}.content{max-width:640px;padding:0 var(--page-pad) calc(var(--tabbar-h) + env(safe-area-inset-bottom) + var(--space-6));margin:0 auto}.page-head{gap:var(--space-3);margin:0 calc(var(--page-pad) * -1) var(--space-4);padding:calc(env(safe-area-inset-top) + var(--space-6)) var(--space-5) var(--space-5);background:var(--accent-tint);border-radius:0 0 var(--radius-2xl) var(--radius-2xl);flex-direction:column;display:flex}.statusbar+.content .page-head{padding-top:var(--space-5)}.head-row{align-items:center;gap:var(--space-2);display:flex}.head-row h1{flex:1;min-width:0}.page-head .sub{margin-top:calc(var(--space-2) * -1);color:var(--ink-muted);font-size:.875rem}.tabbar{justify-content:center;gap:var(--space-1);background:var(--surface-raised);box-shadow:0 -1px 0 var(--line);padding:6px var(--space-2) calc(6px + env(safe-area-inset-bottom));z-index:10;display:flex;position:fixed;inset:auto 0 0}.tabbar a{max-width:120px;min-height:52px;color:var(--ink-muted);border-radius:var(--radius-full);transition:background-color var(--dur-fast) var(--ease-out);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;font-size:.75rem;font-weight:600;line-height:1.33;text-decoration:none;display:flex}.tabbar a.active{color:var(--ink);background:var(--accent-tint)}.tabbar a.active .st-icon{color:var(--accent)}.tab-icon{display:grid;position:relative}.tab-badge{border-radius:var(--radius-full);background:var(--danger);min-width:18px;height:18px;color:var(--on-accent);text-align:center;font-variant-numeric:tabular-nums;padding:0 5px;font-size:.6875rem;font-weight:700;line-height:18px;position:absolute;top:-6px;left:calc(100% - 6px)}@media (width>=960px){.app{padding-left:var(--sidebar-w)}.tabbar{width:var(--sidebar-w);justify-content:flex-start;gap:var(--space-1);padding:calc(env(safe-area-inset-top) + var(--space-6)) var(--space-3) var(--space-6);box-shadow:1px 0 0 var(--line);flex-direction:column;inset:0 auto 0 0}.tabbar a{justify-content:flex-start;gap:var(--space-3);max-width:none;min-height:48px;padding:0 var(--space-4);flex-direction:row;flex:none;font-size:.9375rem}.content{padding-bottom:var(--space-8)}.page-head{border-radius:0 0 var(--radius-2xl) var(--radius-2xl);margin-inline:0}.toast{left:calc(50% + var(--sidebar-w) / 2);bottom:var(--space-6)}}.statusbar{background:var(--warning-tint);color:var(--ink);text-align:center;padding:calc(env(safe-area-inset-top) + 6px) var(--space-3) 6px;font-size:.875rem}.statusbar.emu{background:var(--surface-sunken);color:var(--ink-muted)}.splash,.center-page{justify-content:center;align-items:center;gap:var(--space-3);min-height:100dvh;padding:var(--space-6) var(--space-4);text-align:center;flex-direction:column;display:flex}.center-page .card{text-align:left;width:100%;max-width:420px}.center-page p{max-width:420px}.logo{border-radius:var(--radius-xl)}.btn{justify-content:center;align-items:center;gap:var(--space-2);min-height:var(--control-height);padding:0 var(--space-5);border:1.5px solid var(--line-strong);border-radius:var(--radius-full);background:var(--surface-raised);cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out);font-size:.9375rem;font-weight:600;line-height:1.33;display:inline-flex}.btn:active:not(:disabled){transform:scale(.97)}.btn:disabled{opacity:.45;cursor:default}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.btn.soft{background:var(--accent-tint);color:var(--ink);border-color:#0000}.btn.soft .st-icon{color:var(--accent)}.btn.danger{color:var(--danger)}.btn.link{color:var(--ink-muted);text-underline-offset:3px;background:0 0;border:none;text-decoration:underline}.btn.big{min-height:52px;padding:0 var(--space-8);font-size:1rem}.icon-btn{min-width:var(--touch-min);min-height:var(--touch-min);border-radius:var(--radius-full);cursor:pointer;color:var(--ink-muted);background:0 0;border:none;flex:none;place-items:center;display:inline-grid}.icon-btn:hover{background:var(--surface-sunken)}.chips{gap:var(--space-2);display:flex}.chips.scroll{scrollbar-width:none;margin:-3px -2px;padding:3px 2px;overflow-x:auto}.chips.scroll::-webkit-scrollbar{display:none}.chips.wrap{flex-wrap:wrap}.chip{min-height:40px;padding:0 var(--space-4);border:1.5px solid var(--line-strong);border-radius:var(--radius-full);background:var(--surface-raised);white-space:nowrap;cursor:pointer;flex:none;align-items:center;gap:6px;font-size:.9375rem;font-weight:600;display:inline-flex}.chip.active{background:var(--accent-tint);border-color:var(--accent)}.page-head .chip.active{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.chip.ghost{background:var(--surface-sunken);border-color:#0000}.chip .count{font-variant-numeric:tabular-nums;background:color-mix(in srgb, currentColor 16%, transparent);border-radius:var(--radius-full);padding:0 7px;font-size:.75rem}.chip .st-icon{color:var(--accent)}.page-head .chip.active .st-icon{color:inherit}.card{background:var(--surface-raised);border-radius:var(--radius-xl);box-shadow:var(--shadow-card);padding:var(--space-4) var(--space-5);margin-bottom:var(--space-3)}.form{gap:var(--space-4);margin-bottom:var(--space-3);flex-direction:column;display:flex}.form label{color:var(--ink);flex-direction:column;gap:6px;font-size:.9375rem;font-weight:600;display:flex}fieldset{border:none;margin:0;padding:0}legend{margin-bottom:6px;font-size:.9375rem;font-weight:600}input,textarea{width:100%;min-height:var(--control-height);padding:10px var(--space-4);border-radius:var(--radius-md);border:1.5px solid var(--line-strong);background:var(--surface-raised);color:var(--ink);font-size:16px;font-weight:400}input::placeholder,textarea::placeholder{color:var(--ink-muted)}textarea{resize:vertical}.row{gap:var(--space-2);align-items:center;display:flex}.row.wrap{flex-wrap:wrap}.grow{flex:1}ul.plain{margin:0 0 var(--space-3);gap:var(--space-1);flex-direction:column;padding:0;list-style:none;display:flex}.addbar{top:env(safe-area-inset-top);z-index:5;background:var(--surface);padding:var(--space-1) 0 var(--space-3);position:sticky}.addbar form{gap:var(--space-2);display:flex}.addbar input{border-radius:var(--radius-full);padding-inline:var(--space-5)}.addbar .btn{width:var(--control-height);flex:none;padding:0}.suggestions{margin-top:var(--space-3)}.add-options{gap:var(--space-2);margin-top:var(--space-2);display:grid}.chip.small{min-height:36px;padding:0 var(--space-3);font-size:.875rem}.chip-date{font:inherit;color:inherit;width:auto;min-height:36px;font-size:.875rem}.group{margin-bottom:var(--space-5)}.items{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.items.plan{margin-bottom:var(--space-3)}.item{background:var(--surface-raised);border-radius:var(--radius-lg);min-height:60px;box-shadow:var(--shadow-card);align-items:center;display:flex}.check{cursor:pointer;border-radius:var(--radius-full);background:0 0;border:none;flex:none;place-items:center;width:56px;height:56px;display:grid}.check:before,.check:after{content:"";grid-area:1/1}.check:before{border:2px solid var(--line-strong);width:24px;height:24px;transition:background-color var(--dur-fast) var(--ease-out), transform var(--dur-spring) var(--ease-spring);border-radius:50%}.check.on:before{border-color:var(--accent);background:var(--accent);transform:scale(1.06)}.check.on:after{background:var(--on-accent);width:16px;height:16px;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.2 4.2L19 7'/%3E%3C/svg%3E") 50%/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.2 4.2L19 7'/%3E%3C/svg%3E") 50%/contain no-repeat}.check:active:before{background:var(--accent-tint)}.item-body{align-items:baseline;column-gap:var(--space-2);min-width:0;padding:10px var(--space-3) 10px 0;text-align:left;cursor:pointer;border-radius:var(--radius-lg);background:0 0;border:none;flex-wrap:wrap;flex:1;align-content:center;min-height:60px;display:flex}.item-name{overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto;font-size:1rem;font-weight:600;line-height:1.375}.item-qty{color:var(--ink-muted);font-variant-numeric:tabular-nums}.item-meta{width:100%;color:var(--ink-muted);font-size:.8125rem;line-height:1.4}.item.checked .item-name{color:var(--ink-muted);font-weight:400;text-decoration:line-through;text-decoration-thickness:1px}.item.checked .item-body{cursor:default}.item .avatars{margin-right:var(--space-3)}.group-toggle{cursor:pointer;min-height:var(--touch-min);border-radius:var(--radius-sm);background:0 0;border:none;padding:0}.group-toggle h3{margin:0}.notify{width:100%;margin:0 0 var(--space-5)}.empty{text-align:center;color:var(--ink-muted);padding:var(--space-8) 0}.avatars{flex:none;display:inline-flex}.avatar{border-radius:var(--radius-full);width:24px;height:24px;color:var(--on-accent);background:var(--person-1);place-items:center;font-size:.6875rem;font-weight:700;display:inline-grid}.avatar.p2{background:var(--person-2)}.avatars .avatar+.avatar{margin-left:calc(var(--space-1) * -1);box-shadow:0 0 0 2px var(--surface-raised)}.activity{background:var(--surface-raised);border-radius:var(--radius-xl);box-shadow:var(--shadow-card);margin:0;padding:0;list-style:none;overflow:hidden}.act{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-top:1px solid var(--line);display:flex}.act:first-child{border-top:none}.act-icon{background:var(--surface-sunken);width:32px;height:32px;color:var(--ink-muted);border-radius:50%;flex:none;place-items:center;display:grid}.act.checked .act-icon{background:var(--accent);color:var(--on-accent)}.act.deleted .act-icon{background:var(--danger-tint);color:var(--danger)}.act-body{flex-direction:column;flex:1;min-width:0;display:flex}.act time{font-size:.8125rem}.sheet-backdrop{z-index:20;background:#00000059;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--surface-raised);border-radius:var(--radius-2xl) var(--radius-2xl) 0 0;width:100%;max-width:640px;max-height:90dvh;box-shadow:var(--shadow-raised);padding:var(--space-2) var(--space-5) calc(var(--space-5) + env(safe-area-inset-bottom));gap:var(--space-1);flex-direction:column;display:flex;overflow-y:auto}.sheet:before{content:"";border-radius:var(--radius-full);background:var(--line-strong);width:40px;height:5px;margin:var(--space-1) 0 var(--space-2);flex:none;align-self:center}.sheet-head{justify-content:space-between;align-items:center;display:flex}.sheet-head h2{margin:0}.sheet>input{margin:var(--space-1) 0 var(--space-2)}.toast{left:50%;bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom) + var(--space-3));background:var(--ink);color:var(--surface);padding:var(--space-2) var(--space-2) var(--space-2) var(--space-5);border-radius:var(--radius-full);z-index:30;max-width:calc(100vw - 32px);min-height:52px;box-shadow:var(--shadow-raised);align-items:center;gap:var(--space-3);animation:toast-in var(--dur-base) var(--ease-out);font-size:.9375rem;display:flex;position:fixed;transform:translate(-50%)}.toast-action{color:var(--surface);font:inherit;text-underline-offset:3px;padding:0 var(--space-3);border-radius:var(--radius-full);cursor:pointer;background:0 0;border:none;flex:none;min-height:40px;font-weight:700;text-decoration:underline}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,8px)}}.toast.error{background:var(--danger);color:var(--on-accent)}.toast.error .toast-action{color:var(--on-accent)}.hint{margin:var(--space-2) var(--space-1) 0;align-items:center;gap:6px;display:flex}.filter-row{margin-bottom:var(--space-3);justify-content:space-between}.tags{gap:var(--space-1) 6px;flex-wrap:wrap;margin-top:4px;display:flex}.tag{background:var(--surface-sunken);border-radius:var(--radius-full);padding:1px var(--space-2);color:var(--ink);align-items:center;gap:4px;display:inline-flex}.tag .st-icon{color:var(--ink-muted)}.tag.overdue{background:var(--danger-tint);font-weight:600}.tag.overdue .st-icon{color:var(--danger)}.tag.carried{background:var(--warning-tint)}.tag.planned{background:var(--accent-tint)}.tag.planned .st-icon{color:var(--accent)}.bucket-overdue h3{color:var(--danger)}.date-row{margin-top:var(--space-2)}.date-row input{flex:1;min-width:0}fieldset .chips+.chips{margin-top:var(--space-2)}.toggle{align-items:center;gap:var(--space-3);min-height:var(--touch-min);cursor:pointer;display:flex}.toggle input{width:22px;height:22px;min-height:22px;accent-color:var(--accent)}.progress{flex-direction:column;gap:6px;display:flex;position:relative}.progress:before{content:"";border-radius:var(--radius-full);background:var(--surface-raised);height:8px}.progress-bar{border-radius:var(--radius-full);background:var(--accent);height:8px;transition:width var(--dur-spring) var(--ease-spring);position:absolute;top:0;left:0}.progress .small{color:var(--ink-muted)}.date-chip{position:relative;overflow:hidden}.date-chip input{opacity:0;cursor:pointer;min-height:0;padding:0;position:absolute;inset:0}.row-action{flex:none}.small-btn{min-height:40px;padding:0 var(--space-4);margin-right:var(--space-3);flex:none;font-size:.875rem}.item.no-check .item-body{padding-left:var(--space-4)}.picker{margin:var(--space-1) 0 var(--space-3)}.events{margin:0 0 var(--space-4);gap:var(--space-2);flex-direction:column;padding:0;list-style:none;display:flex}.event{align-items:baseline;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);background:var(--accent-tint);color:inherit;text-decoration:none;display:flex}.event-time{font-variant-numeric:tabular-nums;flex:none;min-width:88px;font-size:.875rem;font-weight:600}.event-body{flex-direction:column;min-width:0;display:flex}.event-title{overflow-wrap:anywhere}.events-note{margin:0 0 var(--space-3);align-items:center;gap:6px;display:flex}.form label.inline-label,.form label.toggle{flex-direction:row;align-items:center;font-weight:400}.form label.inline-label{gap:var(--space-2);margin:var(--space-2) 0}.form label.toggle input{width:auto;min-height:0}.num-input{text-align:center;flex:none;width:72px}.day-chip{min-width:var(--touch-min);justify-content:center}.toggle.disabled{color:var(--ink-muted)}.card h2{align-items:center;gap:var(--space-2);display:flex}.card h2 .st-icon{color:var(--accent)}.steps{margin:var(--space-1) 0;flex-direction:column;gap:6px;padding-left:22px;display:flex}.key{vertical-align:middle;border-radius:var(--radius-xs);background:var(--surface-sunken);place-items:center;padding:2px 6px;display:inline-grid}.id-box{min-width:0;padding:10px var(--space-3);border-radius:var(--radius-md);background:var(--surface-sunken);overflow-wrap:anywhere;-webkit-user-select:all;user-select:all;flex:1;font-size:.875rem}@media (prefers-reduced-motion:reduce){.toast{animation:none}.btn,.check:before,.progress-bar{transition:none}.btn:active:not(:disabled){transform:none}}.flip{transform:scaleX(-1)}.block{display:block}.link-card{align-items:center;gap:var(--space-3);color:inherit;text-decoration:none;display:flex}.link-card>.st-icon:first-child{color:var(--accent)}.page-head .search{border-radius:var(--radius-full);padding-inline:var(--space-5)}.faecher{gap:var(--space-3);flex-direction:column;display:flex}.fach{background:var(--surface-raised);border-radius:var(--radius-xl);box-shadow:var(--shadow-card);padding:var(--space-2) var(--space-2) var(--space-3) var(--space-4);transition:border-color var(--dur-fast) var(--ease-out), background var(--dur-fast) var(--ease-out);border:2px solid #0000}.fach.over{border-color:var(--accent);background:var(--accent-tint)}.fach-head{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.fach-head h3{margin:0}.fach-empty{margin:0 0 var(--space-1)}.stock-chips{padding:0 var(--space-2) 0 0;gap:var(--space-2);flex-wrap:wrap;margin:0;list-style:none;display:flex}.stock-chip{min-height:40px;padding:8px var(--space-3);border:1.5px solid var(--line-strong);border-radius:var(--radius-full);background:var(--surface-raised);color:var(--ink);font:inherit;text-align:left;cursor:grab;touch-action:manipulation;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;align-items:baseline;gap:6px;font-size:.9375rem;display:inline-flex}.stock-chip .st-icon{align-self:center}.stock-name{font-weight:600}.stock-meta{color:var(--ink-muted);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:.8125rem}.stock-chip.overdue{border-color:var(--warning);background:var(--warning-tint)}.stock-chip.overdue .st-icon,.warn-text .st-icon{color:var(--warning)}.stock-chip.ghost{opacity:.35;border-style:dashed}.stock-chip.lifted{cursor:grabbing;border-color:var(--accent);background:var(--accent-tint);box-shadow:var(--shadow-raised);transform:rotate(-3deg)scale(1.04)}.vorrat-add{bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom) + var(--space-3));margin-top:var(--space-4);z-index:4;position:sticky}.vorrat-add .btn{width:100%;box-shadow:var(--shadow-raised)}.field{flex-direction:column;gap:6px;display:flex}.field-label{font-size:.9375rem;font-weight:600}.stepper{align-self:flex-start;align-items:center;gap:var(--space-1);border:1.5px solid var(--line-strong);border-radius:var(--radius-full);padding:2px;display:inline-flex}.stepper output{text-align:center;font-variant-numeric:tabular-nums;min-width:2.5ch;font-weight:700}.sheet-actions{margin:var(--space-2) 0 var(--space-3)}.move-targets{margin-bottom:var(--space-3)}.move-targets legend{align-items:center;gap:6px;display:flex}.move-group{gap:var(--space-1);margin-bottom:var(--space-2);flex-direction:column;display:flex}.to-shopping{gap:var(--space-2);margin-bottom:var(--space-2);flex-direction:column;display:flex}.compartment-list input{flex:1;min-width:0}.staple{padding-right:var(--space-2)}.staple .item-body{min-width:0}.level-word{align-items:center;gap:4px;display:inline-flex}.staple.level-low .level-word,.staple.level-out .level-word{color:var(--warning);font-weight:600}.levels{border:1.5px solid var(--line-strong);border-radius:var(--radius-full);flex:none;gap:2px;padding:2px;display:inline-flex}.level{min-width:52px;min-height:36px;padding:0 var(--space-2);border-radius:var(--radius-full);color:var(--ink-muted);font:inherit;cursor:pointer;background:0 0;border:none;font-size:.8125rem;font-weight:600}.level[aria-pressed=true]{color:var(--ink);background:var(--accent-tint)}.level.low[aria-pressed=true],.level.out[aria-pressed=true]{background:var(--warning-tint)}.shop-btn{color:var(--accent);flex:none}.list-pick{margin-bottom:var(--space-3)}.list-pick .chips{min-width:0}.missing-btn,.store-btn{width:100%;margin-bottom:var(--space-4)}.stock-hint{margin:var(--space-2) var(--space-1) 0;color:var(--ink-muted);flex-direction:column;gap:4px;padding:0;font-size:.875rem;list-style:none;display:flex}.stock-hint li{align-items:center;gap:6px;display:flex}.stock-hint b{color:var(--ink)}.stock-hint .st-icon{color:var(--accent);flex:none}.store-name{margin:0 0 var(--space-2);font-size:1.25rem;font-weight:700}.soon-card h2 .st-icon{color:var(--accent)}.soon-list{margin-bottom:var(--space-1)}.soon-row{align-items:center;gap:var(--space-3);min-height:52px;padding:var(--space-2) 0;color:inherit;border-bottom:1px solid var(--line);text-decoration:none;display:flex}.soon-list li:last-child .soon-row{border-bottom:none}.soon-main{flex-direction:column;flex:1;min-width:0;display:flex}.soon-age{color:var(--ink-muted);flex:none;align-items:center;gap:4px;font-size:.875rem;font-weight:600;display:inline-flex}.soon-row.overdue .soon-age{color:var(--warning)}.soon-actions{justify-content:space-between;gap:var(--space-1) var(--space-4)}.soon-actions .btn.link{min-height:44px;padding:0;font-size:.875rem}
