.icon[data-v-416101ee]{flex:none;display:block}.toast-host[data-v-2a0db0ea]{left:50%;bottom:calc(var(--tabbar-height) + env(safe-area-inset-bottom) + 14px);z-index:50;width:max-content;max-width:calc(100vw - 32px);position:fixed;transform:translate(-50%)}@media (width>=900px){.toast-host[data-v-2a0db0ea]{bottom:28px;left:calc(50% + var(--rail-width) / 2)}}.toast[data-v-2a0db0ea]{background:var(--primary-bg);color:var(--primary-ink);box-shadow:var(--shadow-pop);border-radius:999px;align-items:center;gap:14px;padding:10px 10px 10px 18px;font-size:14.5px;font-weight:550;display:flex}.toast-undo[data-v-2a0db0ea]{background:color-mix(in srgb, var(--primary-ink) 16%, transparent);min-height:32px;color:inherit;border:0;border-radius:999px;padding:0 14px;font-weight:700}.toast-enter-active[data-v-2a0db0ea],.toast-leave-active[data-v-2a0db0ea]{transition:opacity .25s, transform .3s var(--ease-out)}.toast-enter-from[data-v-2a0db0ea],.toast-leave-to[data-v-2a0db0ea]{opacity:0;transform:translateY(10px)}.sheet[data-v-9635016e]{border:1px solid var(--line);background:var(--surface);width:min(520px,100vw - 32px);max-height:min(90dvh,820px);color:var(--ink);box-shadow:var(--shadow-pop);overscroll-behavior:contain;border-radius:24px;padding:0;overflow:auto}.sheet[open][data-v-9635016e]{animation:pop-in-9635016e .32s var(--ease-out)}.sheet[data-v-9635016e]::backdrop{background:var(--backdrop);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.sheet[open][data-v-9635016e]::backdrop{animation:.25s fade-in-9635016e}.sheet-grabber[data-v-9635016e]{display:none}.sheet-head[data-v-9635016e]{z-index:1;background:var(--surface);justify-content:space-between;align-items:center;gap:12px;padding:20px 20px 8px 24px;display:flex;position:sticky;top:0}.sheet-title[data-v-9635016e]{font-size:23px}.sheet-body[data-v-9635016e]{padding:8px 24px 24px}@media (width<=640px){.sheet[data-v-9635016e]{width:100%;max-width:100%;padding-bottom:env(safe-area-inset-bottom);border-bottom:0;border-radius:24px 24px 0 0;margin:auto 0 0}.sheet[open][data-v-9635016e]{animation:slide-up-9635016e .38s var(--ease-out)}.sheet-grabber[data-v-9635016e]{background:var(--line-strong);border-radius:2px;width:40px;height:4px;margin:10px auto -6px;display:block}.sheet-head[data-v-9635016e]{padding:14px 16px 6px 20px}.sheet-body[data-v-9635016e]{padding:8px 20px 20px}}@keyframes pop-in-9635016e{0%{opacity:0;transform:translateY(12px)scale(.98)}}@keyframes slide-up-9635016e{0%{transform:translateY(100%)}}@keyframes fade-in-9635016e{0%{opacity:0}}html:has(dialog[open]){overflow:hidden}.money[data-v-ea332144]{border:1px solid var(--line-strong);background:var(--surface-2);cursor:text;border-radius:12px;align-items:center;gap:8px;min-height:44px;padding:0 14px;transition:border-color .15s,background-color .15s;display:flex}.money[data-v-ea332144]:hover{border-color:var(--ink-3)}.money[data-v-ea332144]:focus-within{border-color:var(--focus);background:var(--surface);box-shadow:0 0 0 3px color-mix(in srgb, var(--focus) 18%, transparent)}.money-symbol[data-v-ea332144]{color:var(--ink-3);font-weight:600}.money-input[data-v-ea332144]{background:0 0;border:0;flex:1;min-width:0;height:42px;padding:0;font-size:17px;font-weight:600}.money-input[data-v-ea332144]:focus{outline:none}.month-picker[data-v-3f6e830d]{grid-template-columns:1.4fr 1fr;gap:8px;display:grid}.segmented[data-v-7042a084]{background:var(--surface-3);border-radius:999px;gap:2px;padding:3px;display:inline-flex}.segment[data-v-7042a084]{min-height:34px;color:var(--ink-2);white-space:nowrap;cursor:pointer;border-radius:999px;flex:1;justify-content:center;align-items:center;gap:6px;padding:0 14px;font-size:14px;font-weight:600;transition:background-color .2s,color .2s,box-shadow .2s;display:inline-flex;position:relative}.segment[data-v-7042a084]:hover{color:var(--ink)}.segment.active[data-v-7042a084]{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px #00000014, 0 0 0 1px var(--line)}.segment[data-v-7042a084]:has(input:focus-visible){outline:2px solid var(--focus);outline-offset:1px}.form[data-v-7ddddb71]{gap:18px;display:grid}.kind[data-v-7ddddb71]{justify-self:start}.field-error[data-v-7ddddb71]{color:var(--danger-ink);font-size:13px;font-weight:600}.actions[data-v-7ddddb71]{align-items:center;gap:8px;padding-top:4px;display:flex}.spacer[data-v-7ddddb71]{flex:1}.totals[data-v-6a7da37a]{border-radius:var(--radius);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.totals-title[data-v-6a7da37a]{color:var(--ink-2);grid-column:1/-1;padding:12px 18px 0;font-size:13px;font-weight:600}.totals>div[data-v-6a7da37a]{gap:2px;padding:14px 18px;display:grid}.totals>div+div[data-v-6a7da37a]{border-left:1px solid var(--line)}.totals .eyebrow[data-v-6a7da37a]{font-size:11px}.totals strong[data-v-6a7da37a]{letter-spacing:-.01em;font-size:20px;font-weight:650}.totals .in[data-v-6a7da37a]{color:var(--good-ink)}.totals .out[data-v-6a7da37a]{color:var(--danger-ink)}.groups[data-v-6a7da37a]{grid-template-columns:repeat(auto-fit,minmax(min(100%,360px),1fr));align-items:start;gap:16px;display:grid}.group[data-v-6a7da37a]{border-radius:var(--radius);padding:8px}.group-head[data-v-6a7da37a]{justify-content:space-between;align-items:center;padding:10px 6px 10px 12px;display:flex}.row[data-v-6a7da37a]{text-align:left;background:0 0;border:0;border-radius:10px;grid-template-columns:1fr auto auto;align-items:center;gap:12px;width:100%;padding:12px 8px 12px 12px;transition:background-color .15s;display:grid}.row[data-v-6a7da37a]:hover{background:var(--surface-2)}.row-main[data-v-6a7da37a]{gap:2px;min-width:0;display:grid}.row-name[data-v-6a7da37a]{overflow-wrap:anywhere;font-weight:600}.row-period[data-v-6a7da37a]{color:var(--ink-3);flex-wrap:wrap;align-items:center;gap:8px;font-size:13px;display:flex}.row-period .badge[data-v-6a7da37a]{padding:1px 8px;font-size:11.5px}.row-amount[data-v-6a7da37a]{font-weight:650}.per[data-v-6a7da37a]{color:var(--ink-3);font-size:12px;font-weight:500}.row-chevron[data-v-6a7da37a],.row.inactive .row-name[data-v-6a7da37a],.row.inactive .row-amount[data-v-6a7da37a]{color:var(--ink-3)}.group-empty[data-v-6a7da37a]{color:var(--ink-3);padding:4px 12px 16px;font-size:14px}@media (width<=520px){.totals>div[data-v-6a7da37a]{padding:8px 12px 12px}.totals-title[data-v-6a7da37a]{padding:12px 12px 0}.totals strong[data-v-6a7da37a]{font-size:16px}}.form[data-v-08024b37]{gap:18px;display:grid}.intro[data-v-08024b37]{color:var(--ink-2);font-size:14px}.actions[data-v-08024b37]{align-items:center;gap:8px;padding-top:4px;display:flex}.spacer[data-v-08024b37]{flex:1}.timeline-list[data-v-1a99899a]{border-radius:var(--radius);padding:6px}.timeline-list>li+li[data-v-1a99899a]{border-top:0}.entry[data-v-1a99899a]{text-align:left;background:0 0;border:0;border-radius:10px;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;width:100%;padding:14px 12px;transition:background-color .15s;display:grid;position:relative}.entry[data-v-1a99899a]:hover{background:var(--surface-2)}li:not(:last-child) .entry[data-v-1a99899a]:after{content:"";border-left:1.5px solid var(--line-strong);height:calc(100% - 4px);position:absolute;top:calc(50% + 8px);left:17px}.dot[data-v-1a99899a]{border:2px solid var(--ink-3);background:var(--surface);border-radius:50%;width:11px;height:11px}.dot.current[data-v-1a99899a]{border-color:var(--ink);background:var(--ink);box-shadow:0 0 0 4px color-mix(in srgb, var(--ink) 12%, transparent)}.entry-main[data-v-1a99899a]{flex-wrap:wrap;align-items:center;gap:4px 10px;min-width:0;display:flex}.entry-date[data-v-1a99899a]{font-weight:650}.entry-note[data-v-1a99899a]{color:var(--ink-3);flex-basis:100%;font-size:13.5px}.entry-figures[data-v-1a99899a]{justify-items:end;gap:1px;display:grid}.entry-balance[data-v-1a99899a]{font-size:16px;font-weight:650}.entry-change[data-v-1a99899a]{white-space:nowrap;align-items:center;gap:3px;font-size:12.5px;font-weight:600;display:inline-flex}.entry-change.up[data-v-1a99899a]{color:var(--good-ink)}.entry-change.down[data-v-1a99899a]{color:var(--danger-ink)}.entry-change .muted[data-v-1a99899a]{margin-left:3px;font-weight:500}.table-wrap[data-v-9a230124]{border-top:1px solid var(--line);margin:4px -20px -20px;overflow-x:auto}@media (width>=720px){.table-wrap[data-v-9a230124]{margin:4px -24px -24px}}table[data-v-9a230124]{border-collapse:collapse;white-space:nowrap;width:100%;font-size:13.5px}th[data-v-9a230124],td[data-v-9a230124]{text-align:right;vertical-align:top;padding:10px 14px}th[data-v-9a230124]:first-child{z-index:1;text-align:left;background:var(--surface);box-shadow:inset -1px 0 0 var(--line);padding-left:24px;position:sticky;left:0}td[data-v-9a230124]:last-child{padding-right:24px}thead th[data-v-9a230124],thead th[data-v-9a230124]:first-child{background:var(--surface-2);color:var(--ink-3);text-transform:uppercase;letter-spacing:.04em;font-size:12px;font-weight:650}tbody tr+tr[data-v-9a230124]{border-top:1px solid var(--line)}tbody th[data-v-9a230124]{font-weight:600}.note[data-v-9a230124]{color:var(--ink-3);white-space:normal;max-width:22ch;margin-left:auto;font-size:12px;font-weight:500;display:block}th .note[data-v-9a230124]{margin-left:0}.strong[data-v-9a230124]{font-weight:650}.delta[data-v-9a230124]{color:var(--good-ink)}tr.below[data-v-9a230124]{background:var(--danger-bg)}tr.below th[data-v-9a230124]:first-child{background:linear-gradient(var(--danger-bg), var(--danger-bg)), var(--surface)}tr.below .delta[data-v-9a230124]{color:var(--danger-ink);font-weight:650}.postpone[data-v-edf471c5]{gap:16px;display:grid}.postpone-head[data-v-edf471c5]{gap:4px;display:grid}.postpone-head p[data-v-edf471c5]{font-size:13.5px}.callout[data-v-edf471c5]{--tone-ink:var(--neutral-ink);--tone-bg:var(--neutral-bg);border-radius:var(--radius);background:var(--tone-bg);gap:14px;padding:16px;display:flex}.callout-good[data-v-edf471c5]{--tone-ink:var(--good-ink);--tone-bg:var(--good-bg)}.callout-warn[data-v-edf471c5]{--tone-ink:var(--warn-ink);--tone-bg:var(--warn-bg)}.callout-danger[data-v-edf471c5]{--tone-ink:var(--danger-ink);--tone-bg:var(--danger-bg)}.callout-icon[data-v-edf471c5]{background:var(--surface);width:32px;height:32px;color:var(--tone-ink);border-radius:50%;flex:none;place-items:center;display:grid}.callout-body[data-v-edf471c5]{gap:6px;min-width:0;display:grid}.callout-body h3[data-v-edf471c5]{color:var(--tone-ink);font-size:19px}.callout-body p[data-v-edf471c5]{color:var(--ink);font-size:14px}.callout-actions[data-v-edf471c5]{margin-top:6px}.verdicts[data-v-edf471c5]{margin-top:-4px}.verdict[data-v-edf471c5]{grid-template-columns:auto 1fr auto;align-items:start;gap:12px;padding:14px 0;display:grid}.verdict .pin[data-v-edf471c5]{margin-top:1px}.verdict-main[data-v-edf471c5]{gap:2px;min-width:0;display:grid}.verdict-line[data-v-edf471c5]{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.verdict-name[data-v-edf471c5]{font-weight:650}.verdict-meta[data-v-edf471c5]{color:var(--ink-3);font-size:13px}.verdict-why[data-v-edf471c5]{color:var(--ink-2);font-size:13.5px}@media (width<=560px){.verdict[data-v-edf471c5]{grid-template-columns:auto 1fr}.verdict-move[data-v-edf471c5]{grid-column:2;justify-self:start}}.timeline[data-v-0b29f079]{grid-template-columns:minmax(0,1fr);gap:12px;min-width:0;display:grid}.readout[data-v-0b29f079]{align-content:start;gap:4px;min-height:104px;display:grid}.readout-top[data-v-0b29f079]{flex-wrap:wrap;align-items:center;gap:10px;min-height:26px;display:flex}.readout-month[data-v-0b29f079]{color:var(--ink-2);font-size:14px;font-weight:600}.readout-main[data-v-0b29f079]{flex-wrap:wrap;align-items:baseline;gap:12px;display:flex}.readout-value[data-v-0b29f079]{letter-spacing:-.02em;font-size:30px;font-weight:650;line-height:1.15}.readout-delta[data-v-0b29f079]{font-size:14px;font-weight:600}.readout-delta.up[data-v-0b29f079]{color:var(--good-ink)}.readout-delta.down[data-v-0b29f079]{color:var(--danger-ink)}.readout-details[data-v-0b29f079]{color:var(--ink-2);flex-wrap:wrap;gap:2px 16px;font-size:13px;display:flex}.readout-details span[data-v-0b29f079]{align-items:center;gap:6px;display:inline-flex}.key[data-v-0b29f079]{border-radius:2px;width:8px;height:8px;display:inline-block}.key-in[data-v-0b29f079]{background:var(--good-ink)}.key-out[data-v-0b29f079]{background:var(--ink-3)}.key-project[data-v-0b29f079]{background:var(--ink);border-radius:50%}.key-suggested[data-v-0b29f079]{background:var(--series-suggested);border-radius:50%}.key-logged[data-v-0b29f079]{background:var(--ink);border-radius:50%}.plot[data-v-0b29f079]{border-radius:12px;min-width:0;margin:0 -6px;position:relative}.plot[data-v-0b29f079]:focus-visible{outline-offset:4px}svg[data-v-0b29f079]{touch-action:pan-y;-webkit-user-select:none;user-select:none;max-width:100%;display:block;overflow:visible}.hit[data-v-0b29f079]{fill:#0000;cursor:crosshair}.crosshair[data-v-0b29f079]{stroke:var(--ink-3);stroke-width:1px;shape-rendering:crispedges}.danger-zone[data-v-0b29f079]{fill:var(--baseline-wash)}.grid line[data-v-0b29f079]{stroke:var(--grid);stroke-width:1px;shape-rendering:crispedges}.grid line.zero[data-v-0b29f079]{stroke:var(--axis)}.y-labels text[data-v-0b29f079]{fill:var(--ink-3);text-anchor:end;font-variant-numeric:tabular-nums;font-size:11.5px}.baseline[data-v-0b29f079]{stroke:var(--baseline);stroke-width:1.75px;stroke-dasharray:7 5}.baseline-label[data-v-0b29f079]{fill:var(--ink-2);text-anchor:end;paint-order:stroke;stroke:var(--surface);stroke-width:4px;stroke-linejoin:round;font-size:11.5px;font-weight:650}.history-line[data-v-0b29f079]{fill:none;stroke:var(--ink-3);stroke-width:1.5px;stroke-linejoin:round;opacity:.55}.projected[data-v-0b29f079]{fill:none;stroke:var(--series-projected);stroke-width:2.25px;stroke-linejoin:round;stroke-linecap:round}.suggested[data-v-0b29f079]{fill:none;stroke:var(--series-suggested);stroke-width:2.5px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:.1 5.5}.breach[data-v-0b29f079]{fill:var(--critical);stroke:var(--surface);stroke-width:2px}.logged[data-v-0b29f079]{fill:var(--ink);stroke:var(--surface);stroke-width:2px}.focus-point[data-v-0b29f079]{fill:var(--series-projected);stroke:var(--surface);stroke-width:2.5px}.focus-suggested[data-v-0b29f079]{fill:var(--series-suggested);stroke:var(--surface);stroke-width:2px}.flag line[data-v-0b29f079]{stroke:var(--ink-3);stroke-width:1px;opacity:.7}.flag circle[data-v-0b29f079]{fill:var(--ink);stroke:var(--surface);stroke-width:2px}.flag text[data-v-0b29f079]{fill:var(--surface);text-anchor:middle;font-variant-numeric:tabular-nums;font-size:11px;font-weight:700}.flag text.small[data-v-0b29f079]{font-size:9px}.x-labels text[data-v-0b29f079]{fill:var(--ink-3);text-anchor:middle;font-size:11.5px}.x-labels text.now[data-v-0b29f079]{fill:var(--ink);font-weight:700}.x-labels text.year[data-v-0b29f079]{fill:var(--ink-2);font-size:11px;font-weight:650}.legend[data-v-0b29f079]{color:var(--ink-2);flex-wrap:wrap;gap:6px 18px;margin:0;padding:0;font-size:12.5px;list-style:none;display:flex}.legend li[data-v-0b29f079]{align-items:center;gap:7px;display:inline-flex}.legend svg[data-v-0b29f079]{overflow:visible}.pin-legend[data-v-0b29f079]{width:16px;height:16px;font-size:10px}.hero[data-v-8fcd7c29]{gap:8px;padding-top:8px;display:grid}.headline[data-v-8fcd7c29]{letter-spacing:-.02em;font-variation-settings:"SOFT" 60;max-width:22ch;font-size:clamp(32px,7.4vw,50px);font-weight:420;line-height:1.06}.stats[data-v-8fcd7c29]{grid-template-columns:1.25fr repeat(3,minmax(0,1fr));gap:12px;display:grid}.stat-group[data-v-8fcd7c29]{display:contents}.stat[data-v-8fcd7c29]{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);align-content:start;gap:4px;padding:16px 18px;display:grid}.stat-hero[data-v-8fcd7c29]{background:var(--primary-bg);border-color:var(--primary-bg);color:var(--primary-ink)}.stat-label[data-v-8fcd7c29]{color:var(--ink-3);font-size:13px;font-weight:600}.stat-hero .stat-label[data-v-8fcd7c29],.stat-hero .stat-sub[data-v-8fcd7c29]{color:color-mix(in srgb, var(--primary-ink) 68%, transparent)}.stat-hero-value[data-v-8fcd7c29]{letter-spacing:-.02em;font-size:32px;font-weight:650;line-height:1.15}.stat-value[data-v-8fcd7c29]{letter-spacing:-.01em;align-items:center;gap:4px;font-size:22px;font-weight:650;line-height:1.3;display:inline-flex}.stat-value.good[data-v-8fcd7c29]{color:var(--good-ink)}.stat-value.bad[data-v-8fcd7c29]{color:var(--danger-ink)}.stat-sub[data-v-8fcd7c29]{color:var(--ink-3);font-size:12.5px}.link-btn[data-v-8fcd7c29]{color:inherit;text-underline-offset:2px;background:0 0;border:0;margin-left:6px;padding:0;font-weight:650;text-decoration:underline;display:inline}.chart-card[data-v-8fcd7c29]{grid-template-columns:minmax(0,1fr);gap:14px;display:grid}.chart-head[data-v-8fcd7c29]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.chart-tools[data-v-8fcd7c29]{align-items:center;gap:8px;display:flex}@media (width<=1100px){.stats[data-v-8fcd7c29]{grid-template-columns:repeat(3,minmax(0,1fr))}.stat-hero[data-v-8fcd7c29]{grid-column:1/-1}}@media (width<=640px){.stats[data-v-8fcd7c29]{grid-template-columns:1fr}.stat-hero[data-v-8fcd7c29]{padding:18px 20px}.stat-hero-value[data-v-8fcd7c29]{font-size:38px}.stat-group[data-v-8fcd7c29]{border-radius:var(--radius);display:grid;overflow:hidden}.stat-group .stat[data-v-8fcd7c29]{box-shadow:none;background:0 0;border:0;border-radius:0;grid-template-columns:1fr auto;gap:0 12px;padding:12px 16px}.stat-group .stat+.stat[data-v-8fcd7c29]{border-top:1px solid var(--line)}.stat-group .stat-label[data-v-8fcd7c29]{color:var(--ink-2);font-size:14px}.stat-group .stat-value[data-v-8fcd7c29]{grid-row:span 2;align-self:center;font-size:18px}.chart-tools[data-v-8fcd7c29]{justify-content:space-between;width:100%}}.switch[data-v-2c2534f0]{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:10px;min-height:32px;display:inline-flex}.track[data-v-2c2534f0]{background:var(--line-strong);border-radius:12px;flex:none;width:40px;height:24px;transition:background-color .2s;position:relative}.thumb[data-v-2c2534f0]{background:var(--surface);width:18px;height:18px;transition:transform .25s var(--ease-out);border-radius:50%;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #00000040}input:checked+.track[data-v-2c2534f0]{background:var(--ink)}input:checked+.track .thumb[data-v-2c2534f0]{transform:translate(16px)}input:focus-visible+.track[data-v-2c2534f0]{outline:2px solid var(--focus);outline-offset:2px}.switch-label[data-v-2c2534f0]{color:var(--ink-2);font-size:14px;font-weight:550}.form[data-v-e19924b9]{gap:18px;display:grid}.preview[data-v-e19924b9]{background:var(--surface-2);border:1px solid var(--line);border-radius:12px;justify-items:start;gap:8px;padding:14px;display:grid}.preview p[data-v-e19924b9]{color:var(--ink-2);font-size:14px}.actions[data-v-e19924b9]{align-items:center;gap:8px;padding-top:4px;display:flex}.spacer[data-v-e19924b9]{flex:1}.summary[data-v-9cde9365]{color:var(--ink-2);margin-top:-8px;font-size:14px;font-weight:600}.cards[data-v-9cde9365]{grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr));gap:12px;margin:0;padding:0;list-style:none;display:grid}.project[data-v-9cde9365]{border-radius:var(--radius);align-content:start;gap:12px;padding:16px 16px 10px;transition:opacity .2s;display:grid}.project.off[data-v-9cde9365]{background:var(--surface-2);box-shadow:none}.project.off .project-title[data-v-9cde9365],.project.off .project-cost[data-v-9cde9365]{opacity:.6}.project-top[data-v-9cde9365]{grid-template-columns:auto 1fr auto;align-items:start;gap:12px;display:grid}.project-top .pin[data-v-9cde9365]{margin-top:2px}.project-title[data-v-9cde9365]{gap:2px;min-width:0;display:grid}.project-title h2[data-v-9cde9365]{font-family:var(--font-ui);letter-spacing:0;overflow-wrap:anywhere;font-size:16.5px;font-weight:650}.project-meta[data-v-9cde9365]{color:var(--ink-3);font-size:13px}.project-cost[data-v-9cde9365]{font-size:16.5px;font-weight:650}.project-status[data-v-9cde9365]{flex-wrap:wrap;align-items:flex-start;gap:4px 10px;display:flex}.project-why[data-v-9cde9365]{color:var(--ink-2);flex:180px;padding-top:1px;font-size:13.5px}.project-move[data-v-9cde9365]{flex-basis:auto;margin-left:auto}.project-note[data-v-9cde9365]{color:var(--ink-3);font-size:13.5px;font-style:italic}.project-actions[data-v-9cde9365]{border-top:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:4px;margin:0 -6px 0 0;padding-top:8px;display:flex}.spacer[data-v-9cde9365]{flex:1}.section[data-v-dd86f2af]{gap:18px;max-width:720px;display:grid}.theme[data-v-dd86f2af]{flex-wrap:wrap;justify-self:start}.buttons[data-v-dd86f2af]{flex-wrap:wrap;gap:8px;display:flex}.row[data-v-dd86f2af]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 20px;display:flex}.row>div[data-v-dd86f2af]{flex:260px}.row p[data-v-dd86f2af]{font-size:14px}.row+.row[data-v-dd86f2af]{border-top:1px solid var(--line);padding-top:18px}.confirm[data-v-dd86f2af]{gap:20px;display:grid}.confirm p[data-v-dd86f2af]{color:var(--ink-2)}.confirm-actions[data-v-dd86f2af]{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.danger-fill[data-v-dd86f2af]{--btn-bg:var(--critical);--btn-line:var(--critical);--btn-ink:#fff}.danger-fill[data-v-dd86f2af]:hover{--btn-bg:color-mix(in srgb, var(--critical) 88%, black)}.shell[data-v-e505027a]{min-height:100dvh}.main[data-v-e505027a]{width:100%;max-width:1120px;padding:calc(env(safe-area-inset-top) + 20px) max(var(--gutter), env(safe-area-inset-right)) calc(var(--tabbar-height) + env(safe-area-inset-bottom) + 32px) max(var(--gutter), env(safe-area-inset-left));align-content:start;gap:20px;margin:0 auto;display:grid}.main[data-v-e505027a]>*{min-width:0}.example-banner[data-v-e505027a]{border:1px dashed var(--line-strong);border-radius:var(--radius);background:color-mix(in srgb, var(--surface) 70%, transparent);color:var(--ink-2);flex-wrap:wrap;align-items:center;gap:12px;padding:10px 12px 10px 16px;font-size:14px;display:flex}.example-banner p[data-v-e505027a]{flex:240px}.example-banner strong[data-v-e505027a]{color:var(--ink)}.tabbar[data-v-e505027a]{z-index:40;height:calc(var(--tabbar-height) + env(safe-area-inset-bottom));padding:0 max(4px, env(safe-area-inset-right)) env(safe-area-inset-bottom) max(4px, env(safe-area-inset-left));border-top:1px solid var(--line);background:color-mix(in srgb, var(--surface) 82%, transparent);-webkit-backdrop-filter:blur(18px)saturate(1.4);grid-template-columns:repeat(5,1fr);display:grid;position:fixed;inset:auto 0 0}.tab[data-v-e505027a]{color:var(--ink-3);align-content:center;place-items:center;gap:3px;font-size:11px;font-weight:600;text-decoration:none;transition:color .2s;display:grid;position:relative}.tab[aria-current=page][data-v-e505027a]{color:var(--ink)}.tab[aria-current=page][data-v-e505027a]:before{content:"";background:var(--ink);border-radius:0 0 3px 3px;width:28px;height:2.5px;position:absolute;top:-1px}.rail[data-v-e505027a]{display:none}@media (width>=900px){.tabbar[data-v-e505027a]{display:none}.rail[data-v-e505027a]{width:var(--rail-width);border-right:1px solid var(--line);background:color-mix(in srgb, var(--surface) 55%, transparent);flex-direction:column;gap:28px;padding:28px 16px 24px;display:flex;position:fixed;inset:0 auto 0 0}.shell[data-v-e505027a]{padding-left:var(--rail-width)}.main[data-v-e505027a]{padding:40px 40px 64px}}.brand[data-v-e505027a]{color:var(--ink);font-family:var(--font-display);font-variation-settings:"SOFT" 80;letter-spacing:-.01em;align-items:center;gap:10px;padding:0 10px;font-size:24px;font-weight:500;text-decoration:none;display:flex}.brand img[data-v-e505027a]{box-shadow:0 0 0 1px var(--line-strong);border-radius:8px}.rail nav[data-v-e505027a]{gap:2px;display:grid}.rail-link[data-v-e505027a]{color:var(--ink-2);border-radius:10px;align-items:center;gap:12px;padding:10px 12px;font-weight:600;text-decoration:none;transition:background-color .15s,color .15s;display:flex}.rail-link[data-v-e505027a]:hover{background:var(--surface-3);color:var(--ink)}.rail-link[aria-current=page][data-v-e505027a]{background:var(--surface);color:var(--ink);box-shadow:0 0 0 1px var(--line), 0 2px 6px -3px #00000026}.rail-foot[data-v-e505027a]{color:var(--ink-3);margin-top:auto;padding:0 12px;font-size:12.5px}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-vietnamese-full-normal-7BpKI3vF.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:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-ext-full-normal-YHFkNujK.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:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-full-normal-CFFu7zhK.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:Hanken Grotesk Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(data:font/woff2;base64,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)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Hanken Grotesk Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/hanken-grotesk-vietnamese-wght-normal-CHiFlh_0.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:Hanken Grotesk Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/hanken-grotesk-latin-ext-wght-normal-Dg-wlmqe.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:Hanken Grotesk Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/hanken-grotesk-latin-wght-normal-CaVRRdDk.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{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--font-display:"Fraunces Variable", "Iowan Old Style", Georgia, serif;--font-ui:"Hanken Grotesk Variable", ui-sans-serif, system-ui, sans-serif;--radius-sm:8px;--radius:14px;--radius-lg:20px;--ease-out:cubic-bezier(.22, 1, .36, 1);--rail-width:232px;--tabbar-height:64px;--gutter:16px;--bg:#f4f0e6;--bg-glow:#ffd69666;--surface:#fffdf8;--surface-2:#f8f4ea;--surface-3:#ede7d9;--ink:#1d1b16;--ink-2:#57524a;--ink-3:#847e72;--line:#e6dfcf;--line-strong:#d2c9b5;--focus:#2a68d4;--link:#2257b8;--primary-bg:#1d1b16;--primary-ink:#fffdf8;--series-projected:#2a68d4;--series-suggested:#b9479c;--baseline:#b77900;--baseline-wash:#b7790017;--critical:#c8352b;--grid:#ece6d8;--axis:#d2c9b5;--good-ink:#22662a;--good-bg:#e1efda;--warn-ink:#7f5300;--warn-bg:#f9ecc9;--danger-ink:#a8271d;--danger-bg:#f9e1dc;--neutral-ink:#57524a;--neutral-bg:#ede7d9;--shadow:0 1px 0 #1d1b1608, 0 10px 30px -18px #1d1b1640;--shadow-pop:0 18px 50px -20px #1d1b1673;--backdrop:#1d1b1661;--grain-opacity:.05}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}:root[data-theme=dark]{--bg:#12110e;--bg-glow:#4b8cf014;--surface:#1c1b18;--surface-2:#22211d;--surface-3:#2c2a25;--ink:#f3efe6;--ink-2:#c4bdaf;--ink-3:#8f897c;--line:#2e2c27;--line-strong:#46423b;--focus:#6aa0f5;--link:#8ab4f8;--primary-bg:#f3efe6;--primary-ink:#1c1b18;--series-projected:#4b8cf0;--series-suggested:#d466b4;--baseline:#c98500;--baseline-wash:#c9850011;--critical:#ec5b4f;--grid:#2a2823;--axis:#46423b;--good-ink:#8fd68f;--good-bg:#4caf5026;--warn-ink:#f0c060;--warn-bg:#c985002b;--danger-ink:#f6948a;--danger-bg:#ec5b4f29;--neutral-ink:#c4bdaf;--neutral-bg:#2c2a25;--shadow:0 1px 0 #0003, 0 12px 32px -18px #0009;--shadow-pop:0 18px 50px -16px #000000b3;--backdrop:#0000008c;--grain-opacity:.07}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;accent-color:var(--ink);-webkit-tap-highlight-color:transparent}body{min-height:100dvh;font-family:var(--font-ui);color:var(--ink);background:radial-gradient(1100px 520px at 12% -12%, var(--bg-glow), transparent 65%), var(--bg);font-feature-settings:"ss01";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-attachment:fixed;margin:0;font-size:15px;line-height:1.5}body:before{content:"";z-index:100;pointer-events:none;opacity:var(--grain-opacity);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .9 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:fixed;inset:0}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--font-display);font-optical-sizing:auto;letter-spacing:-.01em;text-wrap:balance;font-weight:500;line-height:1.15}p{text-wrap:pretty}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}a{color:var(--link)}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}::selection{background:color-mix(in srgb, var(--series-projected) 25%, transparent)}.num{font-variant-numeric:tabular-nums}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow)}.card-pad{padding:20px}@media (width>=720px){.card-pad{padding:24px}}.eyebrow{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);font-size:12.5px;font-weight:600}.muted{color:var(--ink-3)}.secondary{color:var(--ink-2)}.page{animation:page-in .45s var(--ease-out) both;gap:20px;display:grid}.page>*{min-width:0}@keyframes page-in{0%{opacity:0;transform:translateY(6px)}}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;padding-top:4px;display:flex}.page-title{font-variation-settings:"SOFT" 50;font-size:clamp(30px,6vw,40px);font-weight:450}.page-lede{max-width:60ch;color:var(--ink-2);margin-top:6px}.section-title{font-size:21px}.btn{--btn-bg:var(--surface);--btn-ink:var(--ink);--btn-line:var(--line-strong);border:1px solid var(--btn-line);background:var(--btn-bg);min-height:40px;color:var(--btn-ink);white-space:nowrap;transition:background-color .15s, transform .15s var(--ease-out), border-color .15s;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:0 16px;font-size:14.5px;font-weight:600;text-decoration:none;display:inline-flex}.btn:hover{--btn-bg:var(--surface-2)}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{--btn-bg:var(--primary-bg);--btn-ink:var(--primary-ink);--btn-line:var(--primary-bg)}.btn-primary:hover{--btn-bg:color-mix(in srgb, var(--primary-bg) 86%, var(--bg))}.btn-ghost{--btn-bg:transparent;--btn-line:transparent}.btn-ghost:hover{--btn-bg:var(--surface-3)}.btn-danger{--btn-ink:var(--danger-ink)}.btn-danger:hover{--btn-bg:var(--danger-bg);--btn-line:var(--danger-bg)}.btn-sm{min-height:32px;padding:0 12px;font-size:13.5px}.btn-icon{width:40px;padding:0}.btn-sm.btn-icon{width:32px}.field{gap:6px;display:grid}.field-label{color:var(--ink-2);font-size:13.5px;font-weight:600}.field-hint{color:var(--ink-3);font-size:13px}.input,.select{border:1px solid var(--line-strong);background:var(--surface-2);border-radius:12px;width:100%;min-height:44px;padding:0 14px;font-size:16px;transition:border-color .15s,background-color .15s}.input:hover,.select:hover{border-color:var(--ink-3)}.input:focus,.select:focus{border-color:var(--focus);background:var(--surface);box-shadow:0 0 0 3px color-mix(in srgb, var(--focus) 18%, transparent);outline:none}textarea.input{resize:vertical;min-height:76px;padding:10px 14px}.select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none' stroke='%23847e72' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 1.5l5 5 5-5'/%3E%3C/svg%3E");background-position:right 14px center;background-repeat:no-repeat;padding-right:36px}.badge{--badge-ink:var(--neutral-ink);--badge-bg:var(--neutral-bg);background:var(--badge-bg);color:var(--badge-ink);white-space:nowrap;border-radius:999px;align-items:center;gap:5px;padding:3px 10px 3px 8px;font-size:12.5px;font-weight:650;line-height:1.3;display:inline-flex}.badge-good{--badge-ink:var(--good-ink);--badge-bg:var(--good-bg)}.badge-warn{--badge-ink:var(--warn-ink);--badge-bg:var(--warn-bg)}.badge-danger{--badge-ink:var(--danger-ink);--badge-bg:var(--danger-bg)}.pin{background:var(--ink);width:24px;height:24px;color:var(--surface);font-variant-numeric:tabular-nums;border-radius:50%;flex:none;place-items:center;font-size:12px;font-weight:700;display:inline-grid}.pin-off{color:var(--ink-3);border:1.5px dashed var(--line-strong);background:0 0}.list{margin:0;padding:0;list-style:none;display:grid}.list>li+li{border-top:1px solid var(--line)}.empty{text-align:center;color:var(--ink-2);justify-items:center;gap:10px;padding:36px 20px;display:grid}.empty h3{color:var(--ink);font-size:20px}
