:root{--color-primary:#4f46e5;--color-primary-light:#818cf8;--color-primary-dark:#3730a3;--color-primary-gradient:linear-gradient(135deg,#6366f1,#4f46e5 50%,#4338ca);--color-success:#10b981;--color-success-light:#34d399;--color-success-gradient:linear-gradient(135deg,#10b981,#34d399);--color-danger:#ef4444;--color-danger-light:#f87171;--color-danger-gradient:linear-gradient(135deg,#ef4444,#f87171);--color-warning:#f59e0b;--color-warning-light:#fbbf24;--color-warning-gradient:linear-gradient(135deg,#f59e0b,#fbbf24);--color-info:#3b82f6;--color-purple:#8b5cf6;--color-purple-gradient:linear-gradient(135deg,#8b5cf6,#a78bfa);--color-bg:#f9fafb;--color-bg-subtle:#f3f4f6;--color-surface:#fff;--color-text:#111827;--color-text-secondary:#6b7280;--color-text-tertiary:#9ca3af;--color-border:#e5e7eb;--color-border-strong:#d1d5db;--radius-xs:0.3rem;--radius-sm:0.5rem;--radius-md:0.8rem;--radius-lg:1rem;--radius-xl:1.4rem;--radius-pill:499.95rem;--shadow-xs:0 0.05rem 0.1rem rgba(0,0,0,.04);--shadow-sm:0 0.1rem 0.4rem rgba(0,0,0,.04),0 0.05rem 0.1rem rgba(0,0,0,.03);--shadow-md:0 0.3rem 1rem rgba(0,0,0,.06),0 0.1rem 0.3rem rgba(0,0,0,.04);--shadow-lg:0 0.6rem 1.6rem rgba(0,0,0,.1),0 0.2rem 0.6rem rgba(0,0,0,.06);--shadow-color-primary:0 0.4rem 1.2rem rgba(79,70,229,.32);--shadow-color-success:0 0.4rem 1.2rem rgba(16,185,129,.32);--shadow-color-danger:0 0.4rem 1.2rem rgba(239,68,68,.28);--ease-out:cubic-bezier(0.16,1,0.3,1);--ease-spring:cubic-bezier(0.34,1.56,0.64,1);--ease-snap:cubic-bezier(0.4,0,0.2,1);--dur-fast:0.12s;--dur-base:0.24s;--dur-slow:0.4s}page{background:var(--color-bg);color:var(--color-text);font-family:-apple-system,BlinkMacSystemFont,SF Pro SC,PingFang SC,Hiragino Sans GB,Helvetica Neue,Microsoft YaHei,sans-serif;font-size:.7rem;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{background:var(--color-bg);color:var(--color-text);font-size:.7rem;margin:0;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overflow-x:hidden!important;overflow-y:auto!important}html{height:100%;overflow-y:auto}.taro-tabbar__container{overflow-x:hidden!important;overflow-y:auto!important}::-webkit-scrollbar{background:transparent;height:0;width:0}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-2-lines{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.card{background:var(--color-surface);border-radius:var(--radius-lg);-webkit-box-shadow:var(--shadow-sm);box-shadow:var(--shadow-sm);padding:1.4rem;-webkit-transition:-webkit-transform var(--dur-base) var(--ease-out),-webkit-box-shadow var(--dur-base) var(--ease-out);transition:-webkit-transform var(--dur-base) var(--ease-out),-webkit-box-shadow var(--dur-base) var(--ease-out);transition:transform var(--dur-base) var(--ease-out),box-shadow var(--dur-base) var(--ease-out);transition:transform var(--dur-base) var(--ease-out),box-shadow var(--dur-base) var(--ease-out),-webkit-transform var(--dur-base) var(--ease-out),-webkit-box-shadow var(--dur-base) var(--ease-out)}.card-press{cursor:pointer}.card-press:active{-webkit-box-shadow:var(--shadow-xs);box-shadow:var(--shadow-xs);-webkit-transform:scale(.98);transform:scale(.98)}.btn-primary{background:var(--color-primary-gradient);border-radius:var(--radius-md);-webkit-box-shadow:var(--shadow-color-primary);box-shadow:var(--shadow-color-primary);color:#fff;font-size:1.5rem;font-weight:600;padding:1.2rem 0;text-align:center;-webkit-transition:-webkit-transform var(--dur-fast) var(--ease-snap),-webkit-box-shadow var(--dur-base) var(--ease-snap);transition:-webkit-transform var(--dur-fast) var(--ease-snap),-webkit-box-shadow var(--dur-base) var(--ease-snap);transition:transform var(--dur-fast) var(--ease-snap),box-shadow var(--dur-base) var(--ease-snap);transition:transform var(--dur-fast) var(--ease-snap),box-shadow var(--dur-base) var(--ease-snap),-webkit-transform var(--dur-fast) var(--ease-snap),-webkit-box-shadow var(--dur-base) var(--ease-snap)}.btn-primary:active{-webkit-box-shadow:0 .2rem .6rem rgba(79,70,229,.25);box-shadow:0 .2rem .6rem rgba(79,70,229,.25);-webkit-transform:scale(.97);transform:scale(.97)}.btn-success{background:var(--color-success-gradient);border-radius:var(--radius-md);-webkit-box-shadow:var(--shadow-color-success);box-shadow:var(--shadow-color-success);color:#fff;font-size:1.5rem;font-weight:600;padding:1.2rem 0;text-align:center;-webkit-transition:-webkit-transform var(--dur-fast) var(--ease-snap);transition:-webkit-transform var(--dur-fast) var(--ease-snap);transition:transform var(--dur-fast) var(--ease-snap);transition:transform var(--dur-fast) var(--ease-snap),-webkit-transform var(--dur-fast) var(--ease-snap)}.btn-success:active{-webkit-transform:scale(.97);transform:scale(.97)}.btn-ghost{background:transparent;border:.1rem solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);font-size:1.4rem;font-weight:500;padding:1.1rem 0;text-align:center;-webkit-transition:all var(--dur-fast) var(--ease-snap);transition:all var(--dur-fast) var(--ease-snap)}.btn-ghost:active{border-color:var(--color-primary);color:var(--color-primary);-webkit-transform:scale(.97);transform:scale(.97)}.skeleton{-webkit-animation:skeleton-loading 1.5s ease-in-out infinite;animation:skeleton-loading 1.5s ease-in-out infinite;background:-webkit-gradient(linear,left top,right top,from(#f0f0f0),color-stop(50%,#f8f8f8),to(#f0f0f0));background:linear-gradient(90deg,#f0f0f0,#f8f8f8 50%,#f0f0f0);background-size:200% 100%;border-radius:var(--radius-sm)}@-webkit-keyframes skeleton-loading{0%{background-position:200% 0}100%{background-position:-200% 0}}@keyframes skeleton-loading{0%{background-position:200% 0}100%{background-position:-200% 0}}@-webkit-keyframes fade-in-up{from{opacity:0;-webkit-transform:translateY(.6rem);transform:translateY(.6rem)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fade-in-up{from{opacity:0;-webkit-transform:translateY(.6rem);transform:translateY(.6rem)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes fade-in{from{opacity:0}to{opacity:1}}@keyframes fade-in{from{opacity:0}to{opacity:1}}@-webkit-keyframes scale-in{from{opacity:0;-webkit-transform:scale(.96);transform:scale(.96)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes scale-in{from{opacity:0;-webkit-transform:scale(.96);transform:scale(.96)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}.fade-in-up{-webkit-animation:fade-in-up var(--dur-slow) var(--ease-out) both;animation:fade-in-up var(--dur-slow) var(--ease-out) both}.fade-in{-webkit-animation:fade-in var(--dur-base) var(--ease-out) both;animation:fade-in var(--dur-base) var(--ease-out) both}.scale-in{-webkit-animation:scale-in var(--dur-base) var(--ease-spring) both;animation:scale-in var(--dur-base) var(--ease-spring) both}.stagger > *{-webkit-animation:fade-in-up var(--dur-slow) var(--ease-out) both;animation:fade-in-up var(--dur-slow) var(--ease-out) both}.stagger > *:nth-child(1){-webkit-animation-delay:.02s;animation-delay:.02s}.stagger > *:nth-child(2){-webkit-animation-delay:.06s;animation-delay:.06s}.stagger > *:nth-child(3){-webkit-animation-delay:.1s;animation-delay:.1s}.stagger > *:nth-child(4){-webkit-animation-delay:.14s;animation-delay:.14s}.stagger > *:nth-child(5){-webkit-animation-delay:.18s;animation-delay:.18s}.stagger > *:nth-child(6){-webkit-animation-delay:.22s;animation-delay:.22s}.stagger > *:nth-child(7){-webkit-animation-delay:.26s;animation-delay:.26s}.stagger > *:nth-child(8){-webkit-animation-delay:.3s;animation-delay:.3s}