:root{--p-50:#f7f4ff;--p-100:#ede6ff;--p-200:#dccdff;--p-300:#c1a8fa;--p-400:#a37ff2;--p-500:#8555e6;--p-600:#6d35d3;--p-700:#5a26b0;--p-800:#4a2190;--p-900:#3d1d75;--t-50:#eefbf7;--t-100:#d0f4ea;--t-200:#a4e8d8;--t-300:#6dd4c1;--t-400:#38b8a5;--t-500:#199b8b;--t-600:#0e7c71;--t-700:#0f635c;--t-800:#114f4a;--t-900:#12423f;--bg:#faf8fd;--bg-2:#f1ecf9;--surface:#fff;--surface-2:#f9f6fd;--line:#ebe4f5;--line-strong:#dcd1ec;--ink:#1b1426;--ink-2:#594e69;--ink-3:#736888;--brand:var(--p-600);--brand-soft:var(--p-100);--brand-tint:var(--p-50);--brand-ink:#fff;--accent:var(--t-600);--accent-soft:var(--t-100);--accent-tint:var(--t-50);--ok:#0f7a4f;--ok-soft:#dff5ea;--warn:#a35a06;--warn-soft:#fdeed7;--danger:#b3202f;--danger-soft:#fce7e8;--grad-brand:linear-gradient(135deg, var(--p-400) 0%, var(--p-600) 55%, var(--p-700) 100%);--grad-accent:linear-gradient(135deg, var(--t-400) 0%, var(--t-600) 100%);--grad-hero:linear-gradient(155deg, var(--p-500) 0%, var(--p-700) 52%, var(--p-900) 100%);--stitch:repeating-linear-gradient(118deg, #ffffff17 0 2px, transparent 2px 7px, #ffffff0d 7px 8px, transparent 8px 26px);--r-sm:10px;--r:16px;--r-lg:22px;--gap:10px;--pad:16px;--shadow-sm:0 1px 2px #2d16540f;--shadow:0 1px 2px #2d16540d, 0 10px 24px -14px #2d165438;--shadow-lg:0 2px 6px #2d165412, 0 22px 44px -20px #2d165452;--z-nav:10;--z-rail:20;--z-drop:30;--z-sheet:40;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#120e19;--bg-2:#1a1424;--surface:#1e1729;--surface-2:#271f34;--line:#352b46;--line-strong:#483b5d;--ink:#f4f0fa;--ink-2:#bcb0cd;--ink-3:#9b90b0;--brand:var(--p-300);--brand-soft:#2f2247;--brand-tint:#241b36;--brand-ink:#1a1028;--accent:var(--t-300);--accent-soft:#0f322e;--accent-tint:#0e2724;--ok:#4fc793;--ok-soft:#10301f;--warn:#e0a45c;--warn-soft:#35240f;--danger:#f0838f;--danger-soft:#3a1319;--grad-brand:linear-gradient(135deg, var(--p-400) 0%, var(--p-600) 100%);--grad-hero:linear-gradient(155deg, var(--p-600) 0%, var(--p-800) 52%, #2c1456 100%);--shadow-sm:0 1px 2px #0006;--shadow:0 1px 2px #00000073, 0 10px 24px -14px #000c;--shadow-lg:0 2px 6px #00000080, 0 22px 44px -20px #000000e6;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*,:before,:after{box-sizing:border-box;min-width:0}html,body{overscroll-behavior:none;background:var(--bg);height:100%;color:var(--ink);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;margin:0;font-family:Plus Jakarta Sans,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;font-size:15px;line-height:1.45;overflow:hidden}h1,h2,h3,h4,p,ul,ol,figure{margin:0}b,strong{font-weight:600}ul,ol{padding:0;list-style:none}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}img,svg{max-width:100%}button,a,label.pick,.card--tap{cursor:pointer}:where(a,button,input,select,textarea,[tabindex]):focus-visible{outline:2px solid var(--brand);outline-offset:2px;border-radius:6px}.app{background:var(--bg);isolation:isolate;grid-template-rows:auto minmax(0,1fr) auto;max-width:560px;height:100dvh;margin-inline:auto;display:grid;position:relative}.topbar{align-items:center;gap:var(--gap);padding:max(10px, env(safe-area-inset-top)) var(--pad) 10px;background:var(--surface);border-bottom:1px solid var(--line);box-shadow:var(--shadow-sm);z-index:var(--z-nav);padding-inline-start:max(var(--pad), env(safe-area-inset-left));padding-inline-end:max(var(--pad), env(safe-area-inset-right));display:flex;position:relative}.topbar__title{letter-spacing:-.02em;font-size:17.5px;font-weight:700}.topbar__sub{color:var(--ink-3);font-size:12px;font-weight:500}.topbar__grow{flex:1;min-width:0}.topbar__grow>*{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.iconbtn{border:1px solid var(--line);background:var(--surface-2);width:44px;height:44px;color:var(--ink-2);border-radius:50%;flex:none;place-items:center;transition:background-color .18s,color .18s;display:grid}.iconbtn:active{background:var(--brand-soft);color:var(--brand)}.main{min-height:0;padding-inline:max(var(--pad), env(safe-area-inset-left)) max(var(--pad), env(safe-area-inset-right));flex-direction:column;display:flex}.pane{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;scrollbar-width:thin;min-height:0;padding-block:var(--gap) 4px;gap:var(--gap);flex-direction:column;flex:1;display:flex;overflow:hidden auto}.pane::-webkit-scrollbar{width:4px}.pane::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:4px}[x-cloak]{display:none!important}.stack{flex-direction:column;flex:1;min-height:0;display:flex}.fit{gap:var(--gap);min-height:0;padding-block:var(--gap);flex-direction:column;flex:1;justify-content:center;display:flex}.tabbar{background:var(--surface);border-top:1px solid var(--line);padding:6px 8px env(safe-area-inset-bottom);z-index:var(--z-nav);grid-auto-columns:1fr;grid-auto-flow:column;gap:4px;display:grid;position:relative}.tabbar a{min-height:48px;color:var(--ink-3);border-radius:14px;place-items:center;gap:3px;padding:6px 4px;font-size:10.5px;font-weight:600;transition:background-color .18s,color .18s;display:grid}.tabbar a[aria-current=page]{color:var(--brand);background:var(--brand-tint)}.tabbar svg{width:22px;height:22px}.rail{padding-block:10px max(10px, env(safe-area-inset-bottom));border-top:1px solid var(--line);background:linear-gradient(to top, var(--bg) 70%, transparent);z-index:var(--z-rail);flex:none;gap:8px;display:flex;position:relative}.rail .btn{flex:1}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);padding:13px}.card--flat{box-shadow:none}.card--tap{transition:border-color .18s,box-shadow .18s}.card--tap:active{border-color:var(--brand);box-shadow:var(--shadow-lg)}.card--alert{border-color:color-mix(in srgb, var(--warn) 32%, var(--line));background:linear-gradient(180deg, var(--warn-soft), var(--surface) 120%)}.card--accent{border-color:color-mix(in srgb, var(--accent) 28%, var(--line));background:linear-gradient(180deg, var(--accent-tint), var(--surface) 120%)}.card--spine{padding-inline-start:17px;position:relative;overflow:hidden}.card--spine:before{content:"";background:var(--grad-brand);width:4px;position:absolute;inset-block:0;inset-inline-start:0}.card--spine-accent:before{background:var(--grad-accent)}.row{align-items:center;gap:10px;display:flex}.row--between{justify-content:space-between}.col{flex-direction:column;gap:3px;min-width:0;display:flex}.grow{flex:1;min-width:0}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.clamp2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.t-title{letter-spacing:-.01em;font-size:15px;font-weight:600}.t-body{color:var(--ink-2);font-size:13.5px}.t-meta{color:var(--ink-3);font-size:12px;font-weight:400}.t-money{font-variant-numeric:tabular-nums;letter-spacing:-.02em;font-size:15.5px;font-weight:700}.t-eyebrow{letter-spacing:.09em;text-transform:uppercase;color:var(--ink-3);font-size:10.5px;font-weight:600}.t-brand{color:var(--brand)}.t-accent{color:var(--accent)}.tile{background:var(--brand-tint);width:38px;height:38px;color:var(--brand);box-shadow:inset 0 0 0 1px color-mix(in srgb, currentColor 16%, transparent);border-radius:12px;flex:none;place-items:center;display:grid}.tile--lg{border-radius:15px;width:48px;height:48px}.tile--sm{border-radius:9px;width:30px;height:30px}.tile--brand{background:var(--brand-tint);color:var(--p-600)}.tile--accent{background:var(--accent-tint);color:var(--t-600)}.tile--ok{background:var(--ok-soft);color:var(--ok)}.tile--warn{background:var(--warn-soft);color:var(--warn)}.tile--danger{background:var(--danger-soft);color:var(--danger)}.tile--solid{background:var(--grad-brand);color:#fff;box-shadow:var(--shadow)}.tile--solid-accent{background:var(--grad-accent);color:#fff;box-shadow:var(--shadow)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .tile--brand{color:var(--p-300)}:root:not([data-theme=light]) .tile--accent{color:var(--t-300)}}.icon-duo .duo{opacity:.28}.chip{white-space:nowrap;background:var(--brand-tint);color:var(--p-700);box-shadow:inset 0 0 0 1px color-mix(in srgb, currentColor 18%, transparent);border-radius:999px;align-items:center;gap:5px;padding:4px 10px;font-size:11.5px;font-weight:600;display:inline-flex}.chip--ok{background:var(--ok-soft);color:var(--ok)}.chip--warn{background:var(--warn-soft);color:var(--warn)}.chip--danger{background:var(--danger-soft);color:var(--danger)}.chip--accent{background:var(--accent-tint);color:var(--t-700)}.chip--solid{background:var(--grad-brand);color:#fff;box-shadow:none}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .chip{color:var(--p-300)}:root:not([data-theme=light]) .chip--accent{color:var(--t-300)}}.btn{background:var(--grad-brand);color:#fff;letter-spacing:-.01em;min-height:50px;box-shadow:var(--shadow), inset 0 1px 0 #ffffff2e;border:1px solid #0000;border-radius:14px;justify-content:center;align-items:center;gap:8px;padding:0 18px;font-size:15px;font-weight:600;transition:transform .12s,box-shadow .18s,background-color .18s;display:inline-flex}.btn:active{box-shadow:var(--shadow-sm);transform:translateY(1px)}.btn[disabled]{opacity:.45;cursor:not-allowed;box-shadow:none;transform:none}.btn--ghost{background:var(--surface);color:var(--ink);border-color:var(--line-strong);box-shadow:var(--shadow-sm)}.btn--quiet{color:var(--ink-2);border-color:var(--line-strong);box-shadow:none;background:0 0}.btn--ok{background:var(--grad-accent);color:#fff}.btn--danger{color:var(--danger);box-shadow:none;border-color:color-mix(in srgb, var(--danger) 32%, transparent);background:0 0}.btn--sm{border-radius:11px;min-height:40px;padding:0 13px;font-size:13px}.btn--block{width:100%}.field{flex-direction:column;gap:6px;display:flex}.field>label{color:var(--ink-2);font-size:12px;font-weight:600}.input,.select,.textarea{border:1px solid var(--line-strong);background:var(--surface);border-radius:14px;width:100%;min-height:50px;padding:13px 14px;font-size:16px;transition:border-color .18s,box-shadow .18s}.textarea{resize:none;min-height:0;font-size:15px}.input:focus,.select:focus,.textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px color-mix(in srgb, var(--brand) 20%, transparent);outline:none}.error{color:var(--danger);font-size:12px;font-weight:600}.grid2{grid-template-columns:1fr 1fr;gap:8px;display:grid}.grid3{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.stat{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-sm);box-shadow:var(--shadow-sm);flex-direction:column;gap:1px;padding:9px 11px;display:flex;position:relative;overflow:hidden}.stat:after{content:"";background:var(--grad-brand);height:3px;position:absolute;inset-block-start:0;inset-inline:0}.stat--accent:after{background:var(--grad-accent)}.stat b{font-variant-numeric:tabular-nums;letter-spacing:-.03em;font-size:17.5px;font-weight:700}.stat span{color:var(--ink-3);letter-spacing:.06em;font-size:10px;font-weight:600}.railscroll{scrollbar-width:none;flex:none;gap:7px;padding-block:9px;display:flex;overflow-x:auto}.railscroll--bleed{margin-inline:calc(var(--pad) * -1);padding-inline:var(--pad)}.railscroll::-webkit-scrollbar{display:none}.railscroll>*{flex:none}.steps{flex:none;grid-auto-columns:1fr;grid-auto-flow:column;gap:6px;padding-block:10px;display:grid}.steps__seg{border:1px solid var(--line-strong);background:var(--surface);min-height:40px;color:var(--ink-3);white-space:nowrap;border-radius:12px;justify-content:center;align-items:center;gap:6px;padding:0 6px;font-size:12px;font-weight:600;transition:background-color .18s,color .18s,border-color .18s;display:flex}.steps__dot{background:var(--bg-2);width:19px;height:19px;color:var(--ink-3);border-radius:50%;flex:none;place-items:center;font-size:10.5px;font-weight:600;display:grid}.steps__seg[data-state=done]{color:var(--t-700);border-color:color-mix(in srgb, var(--accent) 40%, transparent);background:var(--accent-tint)}.steps__seg[data-state=done] .steps__dot{background:var(--grad-accent);color:#fff}.steps__seg[data-state=now]{color:#fff;background:var(--grad-brand);box-shadow:var(--shadow-sm);border-color:#0000}.steps__seg[data-state=now] .steps__dot{color:#fff;background:#ffffff42}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .steps__seg[data-state=done]{color:var(--t-300)}}@media (width<=340px){.steps__seg{gap:4px;padding:0 3px;font-size:11px}}.tab{border:1px solid var(--line-strong);background:var(--surface);min-height:38px;color:var(--ink-2);border-radius:999px;align-items:center;padding:0 14px;font-size:12.5px;font-weight:600;transition:background-color .18s,color .18s,border-color .18s;display:inline-flex}.tab[aria-current=true]{background:var(--grad-brand);color:#fff;box-shadow:var(--shadow-sm);border-color:#0000}.track{flex-direction:column;gap:0;display:flex}.track li{grid-template-columns:24px 1fr;gap:11px;display:grid}.track .dot{border:2px solid var(--line-strong);background:var(--surface);width:24px;height:24px;color:var(--ink-3);border-radius:50%;place-items:center;font-size:11px;font-weight:600;display:grid;position:relative}.track li.done .dot{background:var(--grad-accent);color:#fff;border-color:#0000}.track li.now .dot{background:var(--grad-brand);color:#fff;box-shadow:0 0 0 4px var(--brand-tint);border-color:#0000}.track li:not(:last-child) .dot:after{content:"";background:var(--line-strong);width:2px;height:15px;position:absolute;top:22px;left:50%;translate:-50%}.track li.done:not(:last-child) .dot:after{background:var(--t-400)}.track .label{color:var(--ink-3);padding-bottom:13px;font-size:13px}.track li.done .label{color:var(--ink-2);font-weight:500}.track li.now .label{color:var(--ink);font-weight:600}.divide>*+*{border-top:1px solid var(--line);margin-top:10px;padding-top:10px}.divide>template{display:none}.divide>template+*{border-top:0;margin-top:0;padding-top:0}.flash{background:var(--ok-soft);color:var(--ok);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--ok) 20%, transparent);border-radius:12px;margin-block:8px 0;padding:10px 13px;font-size:13px;font-weight:500}.empty{text-align:center;color:var(--ink-3);flex:1;place-content:center;justify-items:center;gap:10px;padding:20px;display:grid}.combo{position:relative}.combo__list{z-index:var(--z-drop);inset-inline:0;overscroll-behavior:contain;background:var(--surface);border:1px solid var(--line-strong);max-height:40dvh;box-shadow:var(--shadow-lg);border-radius:14px;position:absolute;top:calc(100% + 5px);overflow-y:auto}.combo__list li{align-items:center;min-height:44px;padding:12px 13px;font-size:13px;display:flex}.combo__list li+li{border-top:1px solid var(--line)}.combo__list li:active{background:var(--brand-tint)}.pick{text-align:left;border:1px solid var(--line-strong);background:var(--surface);width:100%;min-height:50px;box-shadow:var(--shadow-sm);border-radius:14px;justify-content:space-between;align-items:center;gap:9px;padding:10px 13px;transition:border-color .18s,background-color .18s;display:flex}.pick[aria-pressed=true]{border-color:var(--brand);background:var(--brand-tint);box-shadow:inset 0 0 0 1px var(--brand)}.pick .t-title{font-size:13.5px}.sheet-backdrop{z-index:var(--z-sheet);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#170c2b8c;align-items:flex-end;display:flex;position:absolute;inset:0}.sheet{background:var(--surface);border-radius:var(--r-lg) var(--r-lg) 0 0;width:100%;max-height:88dvh;padding:8px 14px max(14px, env(safe-area-inset-bottom));box-shadow:var(--shadow-lg);flex-direction:column;gap:10px;display:flex}.sheet:before{content:"";background:var(--line-strong);border-radius:999px;align-self:center;width:38px;height:4px;margin-bottom:6px}.sheet .pane{padding-block:0}.hr{background:var(--line);border:0;height:1px;margin:0}.hero{border-radius:var(--r-lg);background:var(--grad-hero);color:#fff;box-shadow:var(--shadow-lg);padding:16px;position:relative;overflow:hidden}.hero:before{content:"";background:var(--stitch);opacity:.6;pointer-events:none;position:absolute;inset:0}.hero:after{content:"";pointer-events:none;background:radial-gradient(110% 75% at 6% 0,#ffffff4d,#0000 58%);position:absolute;inset:0}.hero>*{z-index:1;position:relative}.logo--hero svg{filter:drop-shadow(0 10px 22px #14082d73)}.thumb{aspect-ratio:1;object-fit:cover;border:1px solid var(--line);background:var(--surface-2);border-radius:12px;width:100%}@media (height<=700px){:root{--gap:8px;--pad:13px}.btn,.input,.select{min-height:46px}.track .label{padding-bottom:10px}.tile--lg{width:42px;height:42px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}
