@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{--bg:var(--surface);--surface-2:var(--surface-sunken);--text:var(--ink);--text-2:var(--ink-muted);--muted:var(--ink-muted);--border:var(--line);--grid:var(--line);--axis:var(--line-strong);--accent-ink:var(--on-accent);--good:var(--success);--bad:var(--danger);--warn-bg:var(--warning-tint);--warn-ink:var(--ink);--series-1:var(--chart-1);--series-2:var(--chart-2);--series-3:var(--chart-3);--series-4:var(--chart-4);--series-5:var(--chart-5);--series-muted:var(--line-strong);--radius:var(--radius-lg);--nav-w:232px}*{box-sizing:border-box}body{background:var(--surface);color:var(--ink);margin:0;font-size:15px;line-height:1.45}a{color:var(--accent);text-underline-offset:2px}h1{font-family:var(--font-display);letter-spacing:-.02em;-webkit-hyphens:auto;hyphens:auto;text-wrap:balance;margin:0;font-size:1.75rem;font-weight:800;line-height:1.2}h2{margin:0 0 var(--space-3);font-family:var(--font-display);letter-spacing:-.01em;font-size:1.2rem;font-weight:700;line-height:1.3}h3{margin:0 0 var(--space-2);font-size:.95rem;font-weight:700}p{margin:0 0 var(--space-2)}:where(a,button,input,select,textarea,[tabindex]):focus-visible{box-shadow:0 0 0 2px var(--surface), 0 0 0 4px var(--focus);outline:none}.app{grid-template-columns:var(--nav-w) minmax(0, 1fr);min-height:100dvh;display:grid}.nav{background:var(--surface-raised);box-shadow:1px 0 0 var(--line);padding:calc(env(safe-area-inset-top) + var(--space-5)) var(--space-3) var(--space-5);gap:var(--space-1);z-index:10;flex-direction:column;height:100dvh;display:flex;position:sticky;top:0}.nav .brand{font-family:var(--font-display);letter-spacing:-.01em;padding:0 var(--space-3) var(--space-4);font-size:1.125rem;font-weight:800}.nav a,.nav .more{color:var(--ink-muted);min-height:44px;padding:0 var(--space-4);border-radius:var(--radius-full);gap:var(--space-3);align-items:center;font-size:.9375rem;font-weight:600;text-decoration:none;display:flex}.nav a:hover{background:var(--surface-sunken)}.nav a.active{background:var(--accent-tint);color:var(--ink)}.nav a.active .st-icon{color:var(--accent)}.nav .more{display:none}.nav .spacer{flex:1}.nav .short{display:none}.nav .user{color:var(--ink-muted);padding:var(--space-2) var(--space-3);word-break:break-all;font-size:.8125rem}.main{padding:var(--space-6) var(--space-8) var(--space-10);width:100%;min-width:0;max-width:1240px}.page-head{justify-content:space-between;align-items:flex-end;gap:var(--space-3) var(--space-4);margin-bottom:var(--space-5);background:var(--accent-tint);border-radius:var(--radius-xl);padding:var(--space-5) var(--space-6);flex-wrap:wrap;display:flex}.page-head>:first-child{min-width:0}.page-head .sub{color:var(--ink-muted);margin-top:var(--space-1)}.page-head button:not(.primary){background:var(--surface-raised)}@media (width<=959px){.app{grid-template-columns:minmax(0,1fr)}.nav{justify-content:center;gap:var(--space-1);height:auto;padding:6px var(--space-2) calc(6px + env(safe-area-inset-bottom));box-shadow:0 -1px 0 var(--line);flex-direction:row;position:fixed;inset:auto 0 0}.nav .brand,.nav .spacer,.nav .user,.nav .nav-signout,.nav a.secondary{display:none}.nav a,.nav .more{flex-direction:column;flex:1;justify-content:center;gap:2px;min-width:0;max-width:110px;min-height:52px;padding:0;font-size:.75rem}.nav .more{cursor:pointer;background:0 0;border:0;display:flex}.nav .more.active{background:var(--accent-tint);color:var(--ink)}.nav .more.active .st-icon{color:var(--accent)}.nav .long{display:none}.nav .short{display:inline}.main{padding:0 var(--space-4) calc(var(--tabbar-height) + env(safe-area-inset-bottom) + var(--space-6))}.page-head{margin:0 calc(var(--space-4) * -1) var(--space-4);padding:calc(env(safe-area-inset-top) + var(--space-6)) var(--space-5) var(--space-5);border-radius:0 0 var(--radius-2xl) var(--radius-2xl)}}.more-backdrop{z-index:20;background:#00000059;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.more-sheet{background:var(--surface-raised);border-radius:var(--radius-2xl) var(--radius-2xl) 0 0;width:100%;max-width:640px;box-shadow:var(--shadow-raised);padding:var(--space-2) var(--space-4) calc(var(--space-5) + env(safe-area-inset-bottom));gap:var(--space-1);flex-direction:column;display:flex}.more-sheet:before{content:"";border-radius:var(--radius-full);background:var(--line-strong);width:40px;height:5px;margin:var(--space-1) 0 var(--space-3);align-self:center}.more-sheet a,.more-sheet button{align-items:center;gap:var(--space-3);min-height:52px;padding:0 var(--space-4);border-radius:var(--radius-lg);color:var(--ink);text-align:left;background:0 0;border:0;font-size:1rem;font-weight:600;text-decoration:none;display:flex}.more-sheet a .st-icon{color:var(--accent)}.more-sheet a.active{background:var(--accent-tint)}.more-sheet .user{color:var(--ink-muted);padding:var(--space-3) var(--space-4) 0;border-top:1px solid var(--line);margin-top:var(--space-2);word-break:break-all;font-size:.8125rem}.card{background:var(--surface-raised);border-radius:var(--radius-xl);padding:var(--space-5);box-shadow:var(--shadow-card);min-width:0}.grid{gap:var(--space-4);display:grid}.grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}@media (width<=900px){.grid.cols-3,.grid.cols-4{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.cols-2{grid-template-columns:minmax(0,1fr)}}@media (width<=520px){.grid.cols-3,.grid.cols-4{grid-template-columns:minmax(0,1fr)}}.stack{gap:var(--space-4);flex-direction:column;min-width:0;display:flex}.row{gap:var(--space-2);flex-wrap:wrap;align-items:center;display:flex}.row.between{justify-content:space-between}.mt{margin-top:var(--space-4)}.stat .label{color:var(--ink-muted);font-size:.8125rem;font-weight:500}.stat .value{letter-spacing:-.01em;font-variant-numeric:tabular-nums;margin-top:2px;font-size:2rem;font-weight:700;line-height:1.2}.stat .hint{color:var(--ink-muted);margin-top:2px;font-size:.8125rem}.pos{color:var(--success)}.neg{color:var(--danger)}.muted{color:var(--ink-muted)}.small{font-size:.8125rem}.table-wrap{margin:0 calc(var(--space-1) * -1);overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.875rem}th,td{text-align:left;padding:var(--space-2) var(--space-2);border-bottom:1px solid var(--line);white-space:nowrap}th{color:var(--ink-muted);letter-spacing:.04em;text-transform:uppercase;background:var(--surface-raised);font-size:.75rem;font-weight:700;position:sticky;top:0}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}td.wrap{white-space:normal;min-width:180px}tr.total td{border-bottom:none;font-weight:700}tr.clickable{cursor:pointer}tr.clickable:hover td{background:var(--surface-sunken)}label.field{color:var(--ink);flex-direction:column;gap:6px;font-size:.875rem;font-weight:600;display:flex}input,select,textarea{font:inherit;color:var(--ink);background:var(--surface-raised);border:1.5px solid var(--line-strong);border-radius:var(--radius-md);padding:0 var(--space-3);min-height:var(--control-height-compact);min-width:0;font-size:16px}textarea{padding:var(--space-2) var(--space-3)}input[type=checkbox],input[type=radio]{width:18px;height:18px;min-height:0;accent-color:var(--accent)}input.num{text-align:right;font-variant-numeric:tabular-nums}input.compact,select.compact{min-height:32px;padding:0 var(--space-2);font-size:.875rem}.form-grid{gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(180px,1fr));display:grid}label.check{gap:var(--space-2);align-items:center;min-height:36px;font-size:.9375rem;display:flex}button{font:inherit;border-radius:var(--radius-full);min-height:var(--control-height-compact);padding:0 var(--space-4);border:1.5px solid var(--line-strong);background:var(--surface-raised);color:var(--ink);cursor:pointer;justify-content:center;align-items:center;gap:var(--space-2);transition:background-color var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out);font-size:.9375rem;font-weight:600;display:inline-flex}button:hover{background:var(--surface-sunken)}button:active:not(:disabled){transform:scale(.97)}button.primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}button.primary:hover{background:var(--accent);filter:brightness(1.06)}button.danger{color:var(--danger)}button.ghost{background:0 0;border-color:#0000}button.ghost:hover{background:var(--surface-sunken)}button.small{min-height:32px;padding:0 var(--space-3);font-size:.8125rem}button:disabled{opacity:.45;cursor:not-allowed}.tabs{gap:var(--space-1);margin-bottom:var(--space-4);background:var(--surface-sunken);border:1px solid var(--line-strong);border-radius:var(--radius-full);scrollbar-width:none;width:fit-content;max-width:100%;padding:4px;display:flex;overflow-x:auto}.tabs::-webkit-scrollbar{display:none}.tabs button{border-radius:var(--radius-full);min-height:36px;padding:0 var(--space-4);color:var(--ink-muted);white-space:nowrap;background:0 0;border:none;flex:none}.tabs button.active{color:var(--ink);background:var(--surface-raised);box-shadow:var(--shadow-card)}.notice{background:var(--warning-tint);color:var(--ink);border-radius:var(--radius-lg);padding:var(--space-3) var(--space-4);font-size:.875rem}.notice.info{background:var(--surface-sunken);color:var(--ink)}.badge{padding:1px var(--space-2);border-radius:var(--radius-full);background:var(--surface-sunken);color:var(--ink);font-size:.75rem;font-weight:600;display:inline-block}.dropzone{border:2px dashed var(--line-strong);border-radius:var(--radius-lg);padding:var(--space-6);text-align:center;color:var(--ink-muted);cursor:pointer}.dropzone.over{border-color:var(--accent);background:var(--accent-tint)}.chart{width:100%;height:300px}.chart.tall{height:380px}.chart.short{height:220px}.legend{gap:var(--space-2) var(--space-4);color:var(--ink-muted);margin-bottom:var(--space-2);flex-wrap:wrap;font-size:.8125rem;display:flex}.legend .sw{vertical-align:-1px;border-radius:3px;width:10px;height:10px;margin-right:6px;display:inline-block}.legend .sw.line{vertical-align:3px;border-radius:2px;height:3px}.tooltip{background:var(--surface-raised);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);box-shadow:var(--shadow-raised);min-width:160px;font-size:.8125rem}.tooltip .t-title{margin-bottom:var(--space-1);font-weight:700}.tooltip .t-row{justify-content:space-between;gap:var(--space-4);color:var(--ink-muted);display:flex}.tooltip .t-row b{color:var(--ink);font-variant-numeric:tabular-nums;font-weight:600}.segbar{border-radius:var(--radius-xs);height:14px;margin:var(--space-2) 0 var(--space-3);gap:2px;display:flex;overflow:hidden}.segbar>div{min-width:2px}.bar-cell{background:var(--surface-sunken);border-radius:var(--radius-xs);min-width:120px;height:10px;position:relative}.bar-cell .fill{border-radius:var(--radius-xs);background:var(--accent);position:absolute;inset:0 auto 0 0}.bar-cell .fill.over{background:var(--danger)}.bar-cell .mark{background:var(--ink);border-radius:1px;width:2px;position:absolute;top:-4px;bottom:-4px}.center-screen{min-height:100dvh;padding:var(--space-4);place-items:center;display:grid}.login-card{text-align:center;max-width:420px}.steps{flex-wrap:wrap;gap:6px;font-size:.8125rem;display:flex}.steps span{padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);background:var(--surface-sunken);color:var(--ink-muted)}.steps span.active{background:var(--accent);color:var(--on-accent);font-weight:700}.steps span.done{color:var(--ink)}.timeline{gap:var(--space-2);flex-direction:column;display:flex}.tl-row{gap:var(--space-3);grid-template-columns:90px minmax(0,1fr);align-items:center;display:grid}.tl-name{color:var(--ink-muted);font-size:.8125rem}.tl-track{background:var(--surface-sunken);border-radius:var(--radius-sm);height:28px;position:relative}.tl-seg{border-radius:var(--radius-xs);white-space:nowrap;justify-content:center;align-items:center;margin-left:1px;font-size:.72rem;font-weight:700;display:flex;position:absolute;top:2px;bottom:2px;overflow:hidden}.tl-birth{background:var(--ink);width:2px;position:absolute;top:-4px;bottom:-4px}.tl-axis{height:16px;color:var(--ink-muted);font-size:.72rem;position:relative}.tl-axis span{white-space:nowrap;position:absolute}.tag{padding:1px var(--space-2);border-radius:var(--radius-full);background:var(--accent-tint);color:var(--ink);margin:1px 3px 1px 0;font-size:.75rem;font-weight:600;display:inline-block}.yoy-grid{gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(220px,1fr));display:grid}.yoy-card{border:1px solid var(--line);border-radius:var(--radius-md);padding:var(--space-3)}@media (prefers-reduced-motion:reduce){button{transition:none}button:active:not(:disabled){transform:none}}
