page{--color-primary:#ff6fa5;--color-primary-dark:#e85d90;--color-primary-light:#fff0f5;--color-accent:#ffc900;--color-bg:#f8f9fa;--color-card:#fff;--color-text:#1a1a2e;--color-text-secondary:#666;--color-text-light:#999;--color-text-lighter:#ccc;--color-border:#eee;--color-border-light:#f5f5f5;--color-success:#23a094;--color-danger:#ff4757;--color-warning:#ffa502;--color-wechat:#07c160;--color-info:#007aff;--font-2xs:0.5rem;--font-xs:0.55rem;--font-sm:0.65rem;--font-base:0.7rem;--font-md:0.75rem;--font-lg:0.8rem;--font-xl:0.9rem;--font-2xl:1.1rem;--font-3xl:1.2rem;--space-xs:0.2rem;--space-sm:0.3rem;--space-md:0.4rem;--space-lg:0.5rem;--space-xl:0.6rem;--space-2xl:0.8rem;--space-3xl:1rem;--radius-xs:0.1rem;--radius-sm:0.2rem;--radius-md:0.4rem;--radius-lg:0.6rem;--radius-2xl:0.8rem;--radius-full:24.975rem;--shadow-sm:0 0.05rem 0.2rem rgba(0,0,0,.06);--shadow-md:0 0.1rem 0.4rem rgba(0,0,0,.1);--shadow-lg:0 0.2rem 0.8rem rgba(0,0,0,.12)}page{background-color:var(--color-bg);color:var(--color-text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:var(--font-base);line-height:1.6}.flex-center{-ms-flex-align:center;-ms-flex-pack:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;justify-content:center}.flex-between{-ms-flex-align:center;-ms-flex-pack:justify;align-items:center;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;justify-content:space-between}.flex-col{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.text-center{text-align:center}.text-primary{color:var(--color-primary)}.text-secondary{color:var(--color-text-secondary)}.text-sm{font-size:var(--font-sm)}.text-xs{font-size:var(--font-xs)}.font-bold{font-weight:700}.w-full{width:100%}.h-full{height:100%}.mt-20{margin-top:.5rem}.p-20{padding:.5rem}.px-30{padding-left:.75rem;padding-right:.75rem}.btn-primary{-ms-flex-align:center;-ms-flex-pack:center;align-items:center;background:linear-gradient(135deg,var(--color-primary),var(--color-accent));border:none;border-radius:var(--radius-full);color:#fff;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;font-size:var(--font-lg);font-weight:600;height:2.2rem;justify-content:center;width:100%}.btn-primary:active{opacity:.85}.btn-primary.disabled{opacity:.5}.btn-outline{-ms-flex-align:center;-ms-flex-pack:center;align-items:center;background:transparent;border:.05rem solid var(--color-primary);border-radius:var(--radius-full);color:var(--color-primary);display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;font-size:var(--font-base);font-weight:500;height:2.2rem;justify-content:center}.card{background:var(--color-card);border-radius:var(--radius-md);-webkit-box-shadow:var(--shadow-sm);box-shadow:var(--shadow-sm);overflow:hidden}.skeleton{-webkit-animation:shimmer 1.5s infinite;animation:shimmer 1.5s infinite;background:-webkit-gradient(linear,left top,right top,color-stop(25%,#f0f0f0),color-stop(50%,#e0e0e0),color-stop(75%,#f0f0f0));background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0 50%,#f0f0f0 75%);background-size:200% 100%;border-radius:var(--radius-sm)}@-webkit-keyframes shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}@keyframes shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}.empty-state{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding:2rem 1rem}.empty-state .empty-icon{color:var(--color-text-light);font-size:2rem;margin-bottom:.6rem}.empty-state .empty-text{color:var(--color-text-light);font-size:var(--font-base)}.image-placeholder{-ms-flex-align:center;-ms-flex-pack:center;align-items:center;background:linear-gradient(135deg,#ff6fa5,#23a094);color:hsla(0,0%,100%,.6);display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;font-size:var(--font-sm);justify-content:center}taro-view-core{-webkit-box-sizing:border-box;box-sizing:border-box;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.safe-bottom{padding-bottom:env(safe-area-inset-bottom)}