.app-tabbar[data-v-bec9ac4f]{height:var(--tabbar-height);background:var(--color-card);border-top:1px solid var(--color-border);flex-shrink:0;display:flex;position:fixed;bottom:0;left:0;right:0}.app-tabbar__tab[data-v-bec9ac4f]{color:var(--color-muted);cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;transition:color var(--dur-fast) var(--ease-soft), transform var(--dur-fast) var(--ease-spring);background:0 0;border:none;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:4px;font-size:10px;display:flex}.app-tabbar__tab[data-v-bec9ac4f]:active{transform:scale(.94)}.app-tabbar__tab--active[data-v-bec9ac4f]{color:var(--color-accent)}.app-tabbar__icon[data-v-bec9ac4f]{width:20px;height:20px;transition:transform var(--dur-mid) var(--ease-spring);display:block}.app-tabbar__tab--active .app-tabbar__icon[data-v-bec9ac4f]{transform:translateY(-1px)scale(1.08)}.app-layout[data-v-8767128b]{background:var(--color-bg);flex-direction:column;min-height:100dvh;display:flex}.app-layout__main[data-v-8767128b]{flex-direction:column;flex:1;min-height:0;display:flex}.completion-layout[data-v-7876b23b]{background:var(--color-bg);flex-direction:column;min-height:100dvh;display:flex}:root{--tg-bg:var(--color-bg-fallback);--tg-text:var(--color-text-fallback);--tg-hint:var(--color-muted-fallback);--tg-link:var(--color-accent-fallback);--tg-button:var(--color-accent-fallback);--tg-button-text:#fff;--tg-secondary-bg:var(--color-card-fallback);--color-bg:var(--tg-bg);--color-card:var(--tg-secondary-bg);--color-card-2:color-mix(in srgb, var(--color-text) 8%, var(--color-card));--color-text:var(--tg-text);--color-muted:var(--tg-hint);--color-hint:var(--color-muted);--color-border:color-mix(in srgb, var(--color-text) 14%, transparent);--color-accent:var(--color-accent-fallback);--color-accent-dim:color-mix(in srgb, var(--color-accent) 18%, var(--color-bg));--color-button-text:var(--tg-button-text);--color-overlay:color-mix(in srgb, var(--color-bg) 15%, #000 85%);--color-green:#34c759;--color-green-dim:color-mix(in srgb, var(--color-green) 15%, var(--color-bg));--color-orange:#ff9500;--color-orange-dim:color-mix(in srgb, var(--color-orange) 15%, var(--color-bg));--color-danger:#ff3b30;--color-danger-dim:color-mix(in srgb, var(--color-danger) 12%, var(--color-bg));--color-src-ig:#e85d9c;--color-src-tg:#3da1f2;--color-src-yc:#f0b23d;--color-src-dk:#7b68ee;--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-display:"Space Grotesk", var(--font-sans);--font-mono:"JetBrains Mono", ui-monospace, monospace;--radius-sm:10px;--radius-md:14px;--radius-lg:18px;--radius-full:999px;--page-padding-x:20px;--tabbar-height:64px;--topbar-height:52px;--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-spring:cubic-bezier(.34, 1.2, .64, 1);--ease-soft:cubic-bezier(.4, 0, .2, 1);--dur-fast:.16s;--dur-mid:.28s;--dur-slow:.42s;--color-bg-fallback:#fff;--color-card-fallback:#f4f4f5;--color-text-fallback:#000;--color-muted-fallback:#8e8e93;--color-accent-fallback:#ff5a36}@media (prefers-color-scheme:dark){:root{--color-bg-fallback:#14151a;--color-card-fallback:#1d1f26;--color-text-fallback:#f2f1ed;--color-muted-fallback:#8b8d98;--color-accent-fallback:#ff5a36;--color-overlay:#0a0a0bd9}}*,:before,:after{box-sizing:border-box}html,body{min-height:100dvh;font-family:var(--font-sans);color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;padding:0;font-size:16px;line-height:1.4}#app{min-height:100dvh}h1,h2,h3,h4,p{margin:0}button{font:inherit;color:inherit}input,select,textarea{font:inherit}a{color:var(--color-accent)}ul{margin:0;padding:0;list-style:none}.mono{font-family:var(--font-mono)}.display{font-family:var(--font-display)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.fade-slide-enter-active,.fade-slide-leave-active{transition:opacity var(--dur-mid) var(--ease-out), transform var(--dur-mid) var(--ease-out)}.fade-slide-enter-from{opacity:0;transform:translateY(10px)}.fade-slide-leave-to{opacity:0;transform:translateY(-6px)}.page-fade-enter-active,.page-fade-leave-active{transition:opacity var(--dur-mid) var(--ease-out)}.page-fade-enter-from,.page-fade-leave-to{opacity:0}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
