:root{--color-brand-purple:#7c3aed;--color-brand-purple-light:#8b5cf6;--color-brand-purple-100:#ede9fe;--color-brand-purple-200:#ddd6fe;--color-brand-orange:#f97316;--color-brand-orange-200:#fed7aa;--color-success:#059669;--color-success-glow:rgba(16,185,129,.3);--color-error:#ef4444;--color-warning:#f59e0b;--color-info:#3b82f6;--color-text-primary:#1c1917;--color-text-secondary:#57534e;--color-text-tertiary:#a8a29e;--color-text-inverse:#fff;--color-text-on-brand:#fff;--color-surface-bg:#fafaf9;--color-surface-elevated:#fff;--color-surface-overlay:rgba(0,0,0,.4);--color-surface-card:#fff;--color-border-default:rgba(0,0,0,.08);--color-border-strong:rgba(0,0,0,.16);--color-neutral-white:#fff;--color-neutral-100:#f5f5f4;--color-neutral-200:#e7e5e4;--color-neutral-300:#d6d3d1;--color-neutral-400:#a8a29e;--color-neutral-500:#78716c;--color-neutral-600:#57534e;--color-neutral-700:#44403c;--color-neutral-800:#292524;--color-neutral-900:#1c1917;--color-blue-20:#d0e2ff;--gradient-primary:linear-gradient(135deg,#7c3aed,#a78bfa);--gradient-accent:linear-gradient(135deg,#f97316,#fb923c);--gradient-hero:linear-gradient(135deg,#7c3aed,#f97316 50%,#059669);--gradient-bar:linear-gradient(180deg,#7c3aed,#a78bfa);--gradient-success:linear-gradient(135deg,#059669,#10b981);--gradient-tab-glass:linear-gradient(135deg,hsla(0,0%,100%,.85),hsla(0,0%,100%,.6));--shadow-card:0px 2px 8px rgba(0,0,0,.04),0px 8px 24px rgba(0,0,0,.06);--shadow-soft:0px 1px 4px rgba(0,0,0,.06),0px 4px 16px rgba(0,0,0,.04);--shadow-glow:0px 0px 24px rgba(124,58,237,.3);--shadow-modal:0px 8px 32px rgba(0,0,0,.16),0px 2px 8px rgba(0,0,0,.08);--radius-xs:4px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:20px;--radius-2xl:24px;--radius-3xl:32px;--radius-full:9999px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--font-family:"DM Sans",sans-serif;--font-size-xs:11px;--font-size-sm:12px;--font-size-body:14px;--font-size-cta:15px;--font-size-lg:17px;--font-size-xl:20px;--font-size-2xl:24px;--font-size-3xl:28px;--font-size-4xl:32px;--font-weight-regular:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--line-height-tight:1;--line-height-normal:1.25;--line-height-relaxed:1.5;--letter-spacing-tight:-.03em;--letter-spacing-normal:0;--transition-fast:.15s ease;--transition-normal:.25s ease;--transition-slow:.4s ease;--z-base:0;--z-raised:10;--z-overlay:100;--z-nav:400;--z-modal:500;--z-toast:600;--size-btn-sm:40px;--size-btn-md:52px;--size-btn-lg:60px;--size-input:56px;--size-avatar-sm:32px;--size-avatar-md:48px;--size-avatar-lg:72px;--size-tab-bar:85px;--size-header:60px;--size-iu-ring:120px}[data-theme=dark]{--color-text-primary:#fafaf9;--color-text-secondary:#a8a29e;--color-text-tertiary:#78716c;--color-text-inverse:#1c1917;--color-surface-bg:#0c0a09;--color-surface-elevated:#1c1917;--color-surface-card:#292524;--color-surface-overlay:rgba(0,0,0,.6);--color-border-default:hsla(0,0%,100%,.08);--color-border-strong:hsla(0,0%,100%,.16);--color-neutral-100:#292524;--color-neutral-200:#44403c;--color-neutral-300:#57534e;--color-neutral-400:#78716c;--color-neutral-500:#a8a29e;--color-neutral-600:#d6d3d1;--color-neutral-700:#e7e5e4;--color-neutral-800:#f5f5f4;--color-neutral-900:#fafaf9;--shadow-card:0px 2px 8px rgba(0,0,0,.2),0px 8px 24px rgba(0,0,0,.3);--shadow-soft:0px 1px 4px rgba(0,0,0,.2),0px 4px 16px rgba(0,0,0,.2);--gradient-tab-glass:linear-gradient(135deg,rgba(41,37,36,.9),rgba(28,25,23,.8))}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}body,html{font-family:var(--font-family)}body{background-color:var(--color-surface-bg);color:var(--color-text-primary);font-size:var(--font-size-body);font-weight:var(--font-weight-regular);line-height:var(--line-height-normal);min-height:100dvh;overflow-x:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior:none}:focus-visible{outline:2px solid var(--color-brand-purple);outline-offset:2px}a{color:inherit;text-decoration:none}img,svg{display:block;max-width:100%}button{background:none;border:none;cursor:pointer}button,input,select,textarea{font-family:inherit}.page-container{background-color:var(--color-surface-bg);margin:0 auto;max-width:480px;min-height:100dvh;overflow-x:hidden;overflow-y:auto;position:relative;width:100%}.page-content{padding:var(--space-5);padding-bottom:calc(var(--size-tab-bar) + var(--space-4));padding-top:calc(var(--size-header) + var(--space-4))}.page-content--no-header{padding-top:var(--space-5)}.page-content--no-tabbar{padding-bottom:var(--space-5)}.text-heading-lg{font-size:var(--font-size-2xl)}.text-heading-lg,.text-title-lg{font-weight:var(--font-weight-bold);letter-spacing:var(--letter-spacing-tight);line-height:var(--line-height-tight)}.text-title-lg{font-size:var(--font-size-lg)}.text-title-sm{font-size:var(--font-size-body);font-weight:var(--font-weight-bold);letter-spacing:var(--letter-spacing-tight);line-height:var(--line-height-tight)}.text-body-lg{font-size:var(--font-size-body)}.text-body-lg,.text-body-sm{font-weight:var(--font-weight-regular);line-height:var(--line-height-normal)}.text-body-sm{font-size:var(--font-size-sm)}.text-cta{font-size:var(--font-size-cta);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight)}.text-caption{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);line-height:var(--line-height-normal)}.text-primary{color:var(--color-text-primary)}.text-secondary{color:var(--color-text-secondary)}.text-tertiary{color:var(--color-text-tertiary)}.text-brand{color:var(--color-brand-purple)}.text-accent{color:var(--color-brand-orange)}.text-success{color:var(--color-success)}.text-error{color:var(--color-error)}.text-white{color:#fff}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-end{justify-content:flex-end}.gap-1{gap:var(--space-1)}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.gap-4{gap:var(--space-4)}.gap-5{gap:var(--space-5)}.gap-6{gap:var(--space-6)}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}.w-full{width:100%}.scroll-x{overflow-x:auto;scrollbar-width:none}.scroll-x::-webkit-scrollbar{display:none}.scroll-y{overflow-y:auto;scrollbar-width:none}.scroll-y::-webkit-scrollbar{display:none}.glass{backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);background:var(--gradient-tab-glass);border:1px solid hsla(0,0%,100%,.2)}.glass:before{background:linear-gradient(135deg,hsla(0,0%,100%,.15),transparent 60%);border-radius:inherit;content:"";inset:0;pointer-events:none;position:absolute}.card{background:var(--color-surface-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-card)}@keyframes skeleton-pulse{0%,to{opacity:1}50%{opacity:.4}}.skeleton{animation:skeleton-pulse 1.5s ease-in-out infinite;background:var(--color-neutral-200);border-radius:var(--radius-sm)}.fade-enter-active,.fade-leave-active{transition:opacity var(--transition-normal)}.fade-enter-from,.fade-leave-to{opacity:0}.slide-up-enter-active,.slide-up-leave-active{transition:transform var(--transition-normal),opacity var(--transition-normal)}.slide-up-enter-from,.slide-up-leave-to{opacity:0;transform:translateY(24px)}.safe-top{padding-top:env(safe-area-inset-top)}.safe-bottom{padding-bottom:env(safe-area-inset-bottom)}.page-enter-active,.page-leave-active{transition:opacity .2s ease,transform .2s ease}.page-enter-from{opacity:0;transform:translateY(8px)}.page-leave-to{opacity:0;transform:translateY(-4px)}.layout-enter-active,.layout-leave-active{transition:opacity .15s ease}.layout-enter-from,.layout-leave-to{opacity:0}::view-transition-new(root),::view-transition-old(root){animation-duration:.2s;animation-timing-function:ease}html{overscroll-behavior-y:none;scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}.page-content{will-change:transform;-webkit-overflow-scrolling:touch}[role=button],a,button{-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-touch-callout:none}[role=button]:active,a:active,button:active{transition:transform 80ms ease}html{touch-action:manipulation}.app-header,.tab-bar{touch-action:none}@media(prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}.layout-enter-active,.layout-leave-active,.page-enter-active,.page-leave-active{transition:none}::view-transition-new(root),::view-transition-old(root){animation:none}}@media(display-mode:standalone){.page-content,.page-content--no-header{padding-top:calc(env(safe-area-inset-top) + var(--space-5))}}@font-face{font-display:swap;font-family:DM Sans;font-style:normal;font-weight:400;src:url(./DM_Sans-normal-400-latin-ext.BOFOeGcA.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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-display:swap;font-family:DM Sans;font-style:normal;font-weight:400;src:url(./DM_Sans-normal-400-latin.Xz1IZZA0.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:DM Sans;font-style:normal;font-weight:500;src:url(./DM_Sans-normal-400-latin-ext.BOFOeGcA.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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-display:swap;font-family:DM Sans;font-style:normal;font-weight:500;src:url(./DM_Sans-normal-400-latin.Xz1IZZA0.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:DM Sans;font-style:normal;font-weight:600;src:url(./DM_Sans-normal-400-latin-ext.BOFOeGcA.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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-display:swap;font-family:DM Sans;font-style:normal;font-weight:600;src:url(./DM_Sans-normal-400-latin.Xz1IZZA0.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:DM Sans;font-style:normal;font-weight:700;src:url(./DM_Sans-normal-400-latin-ext.BOFOeGcA.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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-display:swap;font-family:DM Sans;font-style:normal;font-weight:700;src:url(./DM_Sans-normal-400-latin.Xz1IZZA0.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}.toast-container[data-v-80efc733]{bottom:calc(var(--size-tab-bar) + 12px + env(safe-area-inset-bottom,0px));left:50%;pointer-events:none;position:fixed;transform:translate(-50%);width:min(calc(100vw - var(--space-5)*2),400px);z-index:var(--z-toast)}.toast-container[data-v-80efc733],.toast-list[data-v-80efc733]{display:flex;flex-direction:column;gap:var(--space-2)}.toast[data-v-80efc733]{align-items:center;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#1c1917;border-radius:14px;box-shadow:0 4px 24px #0000001f,0 1px 4px #00000014;display:flex;gap:var(--space-3);padding:14px 16px;pointer-events:all}.toast--success[data-v-80efc733]{border-left:3px solid var(--color-success)}.toast--error[data-v-80efc733]{border-left:3px solid var(--color-error)}.toast--info[data-v-80efc733]{border-left:3px solid var(--color-brand-purple)}.toast--warning[data-v-80efc733]{border-left:3px solid var(--color-warning)}.toast--success .toast__icon[data-v-80efc733]{color:var(--color-success)}.toast--error .toast__icon[data-v-80efc733]{color:#ff6b6b}.toast--info .toast__icon[data-v-80efc733]{color:#a78bfa}.toast--warning .toast__icon[data-v-80efc733]{color:var(--color-warning)}.toast__icon[data-v-80efc733]{flex-shrink:0}.toast__msg[data-v-80efc733]{color:#fff;flex:1;font-size:13px;font-weight:500;line-height:1.3}.toast__close[data-v-80efc733]{align-items:center;color:#fff6;cursor:pointer;display:flex;flex-shrink:0;justify-content:center;padding:2px}.toast__close[data-v-80efc733]:hover{color:#ffffffb3}.toast-enter-active[data-v-80efc733]{transition:all .3s cubic-bezier(.4,0,.2,1)}.toast-leave-active[data-v-80efc733]{transition:all .2s ease-in}.toast-enter-from[data-v-80efc733]{opacity:0;transform:translateY(-12px) scale(.95)}.toast-leave-to[data-v-80efc733]{opacity:0;transform:translateY(-8px) scale(.95)}.error-page[data-v-9089952d]{align-items:center;background:var(--color-surface-bg);display:flex;justify-content:center;min-height:100dvh;padding:20px}.error-page__content[data-v-9089952d]{align-items:center;display:flex;flex-direction:column;gap:16px;max-width:320px;text-align:center}.error-page__icon[data-v-9089952d]{color:var(--color-text-tertiary)}.error-page__title[data-v-9089952d]{color:var(--color-text-primary);font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);letter-spacing:-.03em}.error-page__desc[data-v-9089952d]{color:var(--color-text-tertiary);font-size:var(--font-size-body);line-height:var(--line-height-relaxed)}.error-page__btn[data-v-9089952d]{background:var(--gradient-primary);border-radius:18px;color:var(--color-text-inverse);cursor:pointer;font-family:var(--font-family);font-size:var(--font-size-cta);font-weight:var(--font-weight-bold);margin-top:8px;padding:16px 32px}
