@charset "UTF-8";.page-loading{display:flex;align-items:center;justify-content:center;min-height:100vh;background:#f8fafb}.page-enter-active,.page-leave-active{transition:opacity .2s ease,transform .2s ease}.v-binder-follower-container{z-index:10001!important}:root{--primary-color: #18a058;--primary-hover: #36ad6a;--primary-active: #0c7a43;--primary-light: #e8f5e9;--primary-lighter: #f0fdf4;--info-color: #2080f0;--warning-color: #f0a020;--success-color: #18a058;--error-color: #d03050;--accent-color: #f0a020;--accent-light: #fef3c7;--text-primary: #333333;--text-secondary: #666666;--text-muted: #999999;--text-light: #cccccc;--bg-white: #ffffff;--bg-color: #f8fafb;--bg-light: #fafafa;--bg-hover: #f5f5f5;--bg-gradient: linear-gradient(180deg, #f8fafb 0%, #ffffff 100%);--border-color: #e5e5e5;--border-light: #f0f0f0;--border-lighter: #f5f5f5;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 32px;--radius-xs: 2px;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-round: 9999px;--radius-full: 9999px;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .02);--shadow-sm: 0 2px 4px rgba(0, 0, 0, .04);--shadow-md: 0 4px 12px rgba(0, 0, 0, .06);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .08);--shadow-primary: 0 4px 14px rgba(24, 160, 88, .25);--transition-fast: .15s ease;--transition-normal: .25s ease;--navbar-height: 64px;--navbar-height-mobile: 56px;--z-dropdown: 100;--z-sticky: 200;--z-fixed: 300;--z-modal-backdrop: 400;--z-modal: 500;--z-tooltip: 600;--z-toast: 700}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{overscroll-behavior:contain}html,body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,PingFang SC,Microsoft YaHei,sans-serif;font-size:14px;line-height:1.6;color:#333;background-color:#f8fafb;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-overflow-scrolling:touch}#app{min-height:100vh}a{color:#18a058;text-decoration:none;transition:color .15s ease}a:hover{color:#36ad6a}img{max-width:100%;height:auto;vertical-align:middle}button{font-family:inherit}::selection{background:#f0fdf4;color:#18a058}:focus-visible{outline:2px solid #18a058;outline-offset:2px}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#d4d4d4;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#b0b0b0}.container{max-width:1200px;margin:0 auto;padding:0 24px}@media (max-width: 600px){.container{padding:0 16px}}.section-header{text-align:center;margin-bottom:48px}.section-badge{display:inline-block;padding:4px 14px;background:#f0fdf4;color:#18a058;border-radius:9999px;font-size:12px;font-weight:500;margin-bottom:12px}.section-title{font-size:28px;font-weight:700;color:#333;margin-bottom:10px;letter-spacing:-.5px}@media (max-width: 600px){.section-title{font-size:24px}}.section-desc{font-size:15px;color:#999;max-width:500px;margin:0 auto}.card{background:#fff;border-radius:12px;box-shadow:0 2px 4px #0000000a;border:1px solid #f5f5f5;transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}.card:hover{transform:translateY(-4px);box-shadow:0 4px 12px #0000000f;border-color:#f0f0f0}.fade-enter-active,.fade-leave-active{transition:opacity .25s ease}.fade-enter-from,.fade-leave-to{opacity:0}.slide-enter-active,.slide-leave-active{transition:transform .25s ease,opacity .25s ease}.slide-enter-from{transform:translateY(10px);opacity:0}.slide-leave-to{transform:translateY(-10px);opacity:0}.list-enter-active,.list-leave-active{transition:all .25s ease}.list-enter-from,.list-leave-to{opacity:0;transform:translateY(20px)}.list-move{transition:transform .25s ease}.markdown-body{line-height:1.8;color:#333}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4{margin-top:24px;margin-bottom:16px;font-weight:600;color:#333}.markdown-body h1{font-size:28px}.markdown-body h2{font-size:24px}.markdown-body h3{font-size:20px}.markdown-body h4{font-size:16px}.markdown-body p{margin-bottom:16px}.markdown-body code{background:#f5f5f5;padding:2px 6px;border-radius:4px;font-family:Fira Code,Consolas,monospace;font-size:13px}.markdown-body pre{background:#f8f8f8;padding:16px;border-radius:8px;overflow-x:auto;margin-bottom:16px}.markdown-body pre code{background:none;padding:0}.markdown-body ul,.markdown-body ol{padding-left:24px;margin-bottom:16px}.markdown-body li{margin-bottom:8px}.markdown-body blockquote{border-left:4px solid #18a058;padding-left:16px;margin:16px 0;color:#666}.btn-primary{background:linear-gradient(135deg,#18a058,#36ad6a);color:#fff;border:none;padding:10px 24px;border-radius:8px;font-weight:500;cursor:pointer;transition:all .15s ease;box-shadow:0 4px 14px #18a05840}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 6px 20px #18a05859}.btn-primary:active{transform:translateY(0)}.icon-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:4px;background:transparent;border:none;cursor:pointer;color:#666;transition:all .15s ease}.icon-btn:hover{background:#f5f5f5;color:#18a058}.tag{display:inline-flex;align-items:center;padding:2px 10px;background:#f8fafb;border-radius:9999px;font-size:12px;color:#999;transition:all .15s ease}.tag:hover{background:#f0fdf4;color:#18a058}.divider{height:1px;background:#f0f0f0;margin:24px 0}.empty-state{text-align:center;padding:64px 24px;color:#999}.empty-state-icon{font-size:48px;margin-bottom:16px;opacity:.5}.empty-state-text{font-size:15px}.loading-container{display:flex;align-items:center;justify-content:center;min-height:200px}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.skeleton{background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0,#f0f0f0 75%);background-size:200% 100%;animation:shimmer 1.5s infinite}@media (max-width: 600px){.hide-mobile{display:none!important}}@media (min-width: 1025px){.hide-desktop{display:none!important}}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.text-ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-primary{color:#333}.text-secondary{color:#666}.text-muted{color:#999}.text-success{color:#18a058}.text-warning{color:#f0a020}.text-error{color:#d03050}.mt-sm{margin-top:8px}.mt-md{margin-top:16px}.mt-lg{margin-top:24px}.mb-sm{margin-bottom:8px}.mb-md{margin-bottom:16px}.mb-lg{margin-bottom:24px}.flex{display:flex}.flex-center{display:flex;align-items:center;justify-content:center}.flex-between{display:flex;align-items:center;justify-content:space-between}.flex-align{display:flex;align-items:center}.flex-col{flex-direction:column}.flex-1{flex:1}.gap-sm{gap:8px}.gap-md{gap:16px}.gap-lg{gap:24px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInLeft{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes fadeInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes bounceIn{0%{opacity:0;transform:scale(.3)}50%{transform:scale(1.05)}70%{transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.animate-fade-in{animation:fadeIn .3s cubic-bezier(.4,0,.2,1) forwards}.animate-fade-in-up{animation:fadeInUp .3s cubic-bezier(.4,0,.2,1) forwards}.animate-fade-in-down{animation:fadeInDown .3s cubic-bezier(.4,0,.2,1) forwards}.animate-fade-in-left{animation:fadeInLeft .3s cubic-bezier(.4,0,.2,1) forwards}.animate-fade-in-right{animation:fadeInRight .3s cubic-bezier(.4,0,.2,1) forwards}.animate-scale-in{animation:scaleIn .3s cubic-bezier(.4,0,.2,1) forwards}.animate-bounce-in{animation:bounceIn .5s cubic-bezier(.4,0,.2,1) forwards}.animate-pulse{animation:pulse 2s ease-in-out infinite}.animate-float{animation:float 3s ease-in-out infinite}.animate-spin{animation:spin 1s linear infinite}.delay-100{animation-delay:.1s}.delay-200{animation-delay:.2s}.delay-300{animation-delay:.3s}.delay-400{animation-delay:.4s}.delay-500{animation-delay:.5s}.delay-600{animation-delay:.6s}.delay-700{animation-delay:.7s}.delay-800{animation-delay:.8s}.animate-hidden{opacity:0}.hover-lift{transition:transform .15s ease,box-shadow .15s ease}.hover-lift:hover{transform:translateY(-4px);box-shadow:0 4px 12px #0000000f}.hover-scale{transition:transform .15s ease}.hover-scale:hover{transform:scale(1.02)}.hover-glow{transition:box-shadow .15s ease}.hover-glow:hover{box-shadow:0 0 20px #18a0584d}.page-enter-active,.page-leave-active{transition:opacity .3s cubic-bezier(.4,0,.2,1),transform .3s cubic-bezier(.4,0,.2,1)}.page-enter-from{opacity:0;transform:translateY(10px)}.page-leave-to{opacity:0;transform:translateY(-10px)}.stagger-item{opacity:0;animation:fadeInUp .3s cubic-bezier(.4,0,.2,1) forwards}@keyframes gradientMove{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}.animate-gradient{background-size:200% 200%;animation:gradientMove 8s ease infinite}@keyframes countUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.animate-count{animation:countUp .6s cubic-bezier(.4,0,.2,1) forwards}@keyframes ripple{0%{transform:scale(0);opacity:1}to{transform:scale(4);opacity:0}}.ripple-effect{position:relative;overflow:hidden}.ripple-effect:after{content:"";position:absolute;width:100px;height:100px;background:#18a0584d;border-radius:50%;transform:scale(0);pointer-events:none}.ripple-effect:active:after{animation:ripple .6s linear}@keyframes loadingDots{0%,80%,to{transform:scale(0);opacity:.5}40%{transform:scale(1);opacity:1}}.loading-dots{display:inline-flex;gap:4px}.loading-dots span{width:8px;height:8px;background:#18a058;border-radius:50%;animation:loadingDots 1.4s infinite ease-in-out both}.loading-dots span:nth-child(1){animation-delay:-.32s}.loading-dots span:nth-child(2){animation-delay:-.16s}.loading-dots span:nth-child(3){animation-delay:0s}
