.top-nav[data-v-2d835132]{position:sticky;top:0;z-index:1000;height:60px;background:#fff;border-bottom:1px solid #e5e7eb;box-shadow:0 1px 3px rgba(0,0,0,.06)}.nav-inner[data-v-2d835132]{max-width:1400px;margin:0 auto;height:100%;display:flex;align-items:center;padding:0 24px;gap:32px}.nav-logo[data-v-2d835132]{display:flex;align-items:center;gap:10px;cursor:pointer;flex-shrink:0}.nav-logo .logo-img[data-v-2d835132]{height:32px;width:auto;-o-object-fit:contain;object-fit:contain}.nav-menu[data-v-2d835132]{display:flex;align-items:center;gap:4px;flex:1}.nav-badge[data-v-2d835132]{display:inline-block;padding:1px 5px;border-radius:3px;font-size:10px;font-weight:600;line-height:1.4;vertical-align:middle;margin-left:3px}.nav-badge.free[data-v-2d835132]{background:#dcfce7;color:#16a34a}.nav-badge.paid[data-v-2d835132]{background:#fef3c7;color:#d97706}.nav-item[data-v-2d835132]{position:relative;padding:8px 20px;font-size:15px;color:#6b7280;text-decoration:none;border-radius:6px;transition:all .3s ease;cursor:pointer;display:flex;align-items:center;gap:4px}.nav-item[data-v-2d835132]:hover{color:#1f2937;background:#f3f4f6}.nav-item.active[data-v-2d835132],.nav-item.router-link-exact-active[data-v-2d835132]{color:#2563eb;background:#eff6ff}.nav-item.active[data-v-2d835132]:after,.nav-item.router-link-exact-active[data-v-2d835132]:after{content:"";position:absolute;bottom:0;left:50%;transform:translateX(-50%);width:20px;height:2px;background:#2563eb;border-radius:1px}.nav-item .el-icon-arrow-down[data-v-2d835132]{font-size:12px;transition:transform .3s}.nav-dropdown[data-v-2d835132]{position:relative}.nav-dropdown:hover .el-icon-arrow-down[data-v-2d835132]{transform:rotate(180deg)}.dropdown-panel[data-v-2d835132]{position:absolute;top:calc(100% + 8px);left:50%;transform:translateX(-50%);background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:16px;min-width:380px;box-shadow:0 8px 24px rgba(0,0,0,.1)}.dropdown-grid[data-v-2d835132]{display:grid;grid-template-columns:1fr 1fr;gap:6px}.dropdown-item[data-v-2d835132]{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:8px;text-decoration:none;transition:all .25s ease;color:#4b5563}.dropdown-item[data-v-2d835132]:hover{background:#f3f4f6;color:#1f2937}.dropdown-item:hover i[data-v-2d835132]{color:#2563eb}.dropdown-item.router-link-active[data-v-2d835132]{background:#eff6ff;color:#2563eb}.dropdown-item i[data-v-2d835132]{font-size:22px;color:#9ca3af;transition:all .3s}.dropdown-item .item-title[data-v-2d835132]{font-size:14px;font-weight:500}.dropdown-item .item-desc[data-v-2d835132]{font-size:11px;color:#9ca3af;margin-top:2px}.nav-right[data-v-2d835132]{display:flex;align-items:center;gap:16px;flex-shrink:0}.nav-search[data-v-2d835132]{width:200px}.nav-search[data-v-2d835132] .el-input__inner{border-radius:20px!important;height:34px;line-height:34px;font-size:13px;padding-left:34px;background:#f9fafb!important;border:1px solid #e5e7eb!important}.nav-search[data-v-2d835132] .el-input__prefix{left:10px;color:#9ca3af}.login-btn[data-v-2d835132]{display:flex;align-items:center;gap:6px;padding:7px 18px;border-radius:20px;font-size:13px;color:#2563eb;text-decoration:none;border:1px solid #bfdbfe;background:#eff6ff;transition:all .3s ease;white-space:nowrap}.login-btn[data-v-2d835132]:hover{background:#dbeafe;border-color:#93c5fd;box-shadow:0 2px 8px rgba(37,99,235,.12)}.sub-btn[data-v-2d835132]{display:flex;align-items:center;gap:5px;padding:6px 14px;border-radius:20px;font-size:12px;font-weight:600;color:#d97706;text-decoration:none;border:1px solid #fde68a;background:#fffbeb;white-space:nowrap;transition:all .2s}.sub-btn[data-v-2d835132]:hover{background:#fef3c7}.admin-btn[data-v-2d835132]{display:flex;align-items:center;gap:5px;padding:6px 14px;border-radius:20px;font-size:12px;font-weight:600;color:#7c3aed;text-decoration:none;border:1px solid #ddd6fe;background:#f5f3ff;white-space:nowrap;transition:all .2s}.admin-btn[data-v-2d835132]:hover{background:#ede9fe}.user-avatar-wrap[data-v-2d835132]{display:flex;align-items:center;gap:6px;cursor:pointer}.user-name-nav[data-v-2d835132]{font-size:13px;color:#374151;max-width:80px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fade-down-enter-active[data-v-2d835132],.fade-down-leave-active[data-v-2d835132]{transition:all .25s ease}.fade-down-enter[data-v-2d835132],.fade-down-leave-to[data-v-2d835132]{opacity:0;transform:translateX(-50%) translateY(-8px)}.site-footer[data-v-708bb272]{padding:32px 24px;border-top:1px solid #e5e7eb;background:#f9fafb}.footer-inner[data-v-708bb272]{max-width:1400px;margin:0 auto;display:flex;justify-content:space-between;align-items:center}.footer-logo[data-v-708bb272]{font-size:16px;font-weight:600;color:#374151}.footer-copy[data-v-708bb272]{font-size:13px;color:#9ca3af;margin-top:4px}.footer-links[data-v-708bb272]{display:flex;gap:24px}.footer-links .router-link-active[data-v-708bb272],.footer-links a[data-v-708bb272],.footer-links a[data-v-708bb272]:visited{font-size:14px;color:#6b7280;text-decoration:none;transition:color .3s}.footer-links a[data-v-708bb272]:hover{color:#2563eb}body,html{height:100%;margin:0}#app{display:flex;flex-direction:column}.app-main{flex:1}*{margin:0;padding:0;box-sizing:border-box}body{font-family:PingFang SC,Microsoft YaHei,Helvetica Neue,Arial,sans-serif;color:#1f2937;font-size:15px;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-font-smoothing:antialiased}#app,body{background:#fff;min-height:100vh}#app{position:relative;overflow-x:hidden}.el-table{background-color:#fff!important;color:#1f2937!important}.el-table:before{background-color:#e5e7eb!important}.el-table th.el-table__cell{background-color:#f8fafc!important;color:#1f2937!important;border-bottom:1px solid #e5e7eb!important;font-weight:600;font-size:13px}.el-table td.el-table__cell{border-bottom:1px solid #f3f4f6!important;color:#1f2937!important}.el-table tr{background-color:#fff!important}.el-table tr:hover>td.el-table__cell{background-color:#f9fafb!important}.el-table .el-table__body tr.el-table__row--striped td.el-table__cell{background-color:#fafbfc!important}.el-table .el-table__empty-block{background-color:#fff!important}.el-button--primary{background:#2563eb!important;border:1px solid #2563eb!important;color:#fff!important;transition:all .3s ease}.el-button--primary:hover{background:#3b82f6!important;border-color:#3b82f6!important;box-shadow:0 2px 8px rgba(37,99,235,.25)}.el-tag{border-radius:3px}.el-pagination .btn-next,.el-pagination .btn-prev,.el-pagination .el-pager li{background-color:#fff!important;color:#6b7280!important;border:1px solid #e5e7eb}.el-pagination .btn-next.active,.el-pagination .btn-next:hover,.el-pagination .btn-prev.active,.el-pagination .btn-prev:hover,.el-pagination .el-pager li.active,.el-pagination .el-pager li:hover{color:#2563eb!important;border-color:#2563eb}.el-input__inner{background-color:#fff!important;border:1px solid #e5e7eb!important;color:#1f2937!important}.el-input__inner:focus{border-color:#2563eb!important;box-shadow:0 0 0 3px rgba(37,99,235,.1)}.el-input__inner::-moz-placeholder{color:#9ca3af!important}.el-input__inner::placeholder{color:#9ca3af!important}.el-select-dropdown{background-color:#fff!important;border:1px solid #e5e7eb!important}.el-select-dropdown .el-select-dropdown__item{color:#1f2937}.el-select-dropdown .el-select-dropdown__item.selected,.el-select-dropdown .el-select-dropdown__item:hover{background-color:#eff6ff!important;color:#2563eb}.tech-card{background:#fff;border:1px solid #e5e7eb;border-radius:8px;transition:all .3s ease}.tech-card:hover{border-color:#d1d5db;box-shadow:0 4px 12px rgba(0,0,0,.06)}.flex-center{display:flex;align-items:center;justify-content:center}.page-container{position:relative;z-index:1;padding:20px 30px;max-width:1400px;margin:0 auto}.glow-text{color:#2563eb;font-weight:600}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:#f3f4f6}::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#9ca3af}.el-checkbox__input.is-checked .el-checkbox__inner{background-color:#2563eb!important;border-color:#2563eb!important}.el-checkbox__input.is-checked+.el-checkbox__label{color:#2563eb!important}