#app{font-family:Avenir,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;height:100vh;margin:0;padding:0}body{background-color:#f5f5f5}*{margin:0;padding:0;box-sizing:border-box}body,html{height:100%;font-family:Helvetica Neue,Helvetica,PingFang SC,Hiragino Sans GB,Microsoft YaHei,微软雅黑,Arial,sans-serif;background-color:#f5f7fa}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#f1f1f1;border-radius:4px}::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#a8a8a8}.card{background:#fff;border-radius:8px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);padding:20px;margin-bottom:20px}.btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:6px;color:#fff;padding:12px 24px;font-size:14px;cursor:pointer;transition:all .3s ease}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(102,126,234,.4)}.form-container{max-width:400px;margin:0 auto;padding:40px 20px}.page-title{font-size:24px;font-weight:600;color:#303133;margin-bottom:20px;text-align:center}@media (max-width:768px){.card{margin:10px;padding:15px}.form-container{padding:20px 15px}}.fade-enter-active,.fade-leave-active{transition:opacity .3s}.fade-enter,.fade-leave-to{opacity:0}.loading{display:flex;justify-content:center;align-items:center;height:200px}.video-player{width:100%;max-width:800px;background:#000;border-radius:8px;overflow:hidden}.video-player video{width:100%;height:auto}.data-table{background:#fff;overflow:hidden}.data-table,.data-table .el-table{border-radius:8px}.search-container{background:#fff;padding:20px;border-radius:8px;margin-bottom:20px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-button--primary{background:linear-gradient(135deg,#667eea,#764ba2);border:none;transition:all .3s ease}.el-button--primary:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(102,126,234,.4)}.el-input__inner{border-radius:6px;transition:all .3s ease}.el-input__inner:focus{border-color:#667eea;box-shadow:0 0 0 2px rgba(102,126,234,.2)}.el-table{border-radius:8px;overflow:hidden}.el-table th{background:#f8f9fa;color:#303133;font-weight:600}.el-pagination{text-align:center}.el-pagination .btn-next,.el-pagination .btn-prev{border-radius:6px}.el-pagination .el-pager li{border-radius:6px;margin:0 2px}.card:hover{box-shadow:0 4px 20px 0 rgba(0,0,0,.15);transform:translateY(-2px);transition:all .3s ease}.gradient-bg,.gradient-text{background:linear-gradient(135deg,#667eea,#764ba2)}.gradient-text{-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.el-loading-mask{background-color:hsla(0,0%,100%,.9);backdrop-filter:blur(2px)}.el-message{border-radius:8px;box-shadow:0 4px 12px rgba(0,0,0,.15)}.el-dialog{border-radius:12px;overflow:hidden}.el-dialog__header{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.el-dialog__headerbtn .el-dialog__close,.el-dialog__title{color:#fff}*{-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.selectable,input,textarea{-webkit-user-select:text;-moz-user-select:text;user-select:text}html{font-size:16px;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;scroll-behavior:auto}body,html{overflow-x:hidden}body{margin:0;padding:0;-webkit-overflow-scrolling:touch;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Helvetica Neue,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f5f7fa}@supports (padding:env(safe-area-inset-top)){.safe-area-top{padding-top:env(safe-area-inset-top)}.safe-area-bottom{padding-bottom:env(safe-area-inset-bottom)}.safe-area-left{padding-left:env(safe-area-inset-left)}.safe-area-right{padding-right:env(safe-area-inset-right)}}.swipeable{touch-action:pan-x;position:relative;transition:transform .3s ease}.swipe-left{transform:translateX(-100%)}.swipe-right{transform:translateX(100%)}.pull-refresh{position:relative;overflow:hidden}.pull-refresh-indicator{position:absolute;top:-60px;left:50%;transform:translateX(-50%);width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:#fff;border-radius:50%;box-shadow:0 2px 8px rgba(0,0,0,.1);transition:all .3s ease}.pull-refresh.pulling .pull-refresh-indicator{top:10px}.pull-refresh.refreshing .pull-refresh-indicator{top:10px;animation:spin 1s linear infinite}@keyframes spin{0%{transform:translateX(-50%) rotate(0deg)}to{transform:translateX(-50%) rotate(1turn)}}.long-press{transition:all .2s ease}.long-press.pressing{transform:scale(.95);filter:brightness(.9)}.smooth-scroll{-webkit-overflow-scrolling:touch;scroll-behavior:smooth}.hide-scrollbar{-ms-overflow-style:none;scrollbar-width:none}.hide-scrollbar::-webkit-scrollbar{display:none}.elastic-scroll{overscroll-behavior:contain}.mobile-btn{min-height:44px;min-width:44px;border-radius:8px;font-size:16px;font-weight:600;border:none;cursor:pointer;position:relative;overflow:hidden}.mobile-btn.primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.mobile-btn.secondary{background:#f8f9fa;color:#606266;border:1px solid #dcdfe6}.mobile-btn:disabled{opacity:.6;cursor:not-allowed}.mobile-input{min-height:44px;border-radius:8px;border:1px solid #dcdfe6;padding:0 16px;font-size:16px;background:#fff}.mobile-input:focus{border-color:#667eea;outline:none}.mobile-input .el-input__inner,.mobile-select .el-input__inner{border:none!important;box-shadow:none!important;background:transparent!important;padding:0 12px!important;font-size:16px!important}.mobile-input .el-input,.mobile-select .el-input{border:1px solid #dcdfe6;border-radius:8px;background:#fff;overflow:hidden;min-height:44px}.mobile-input .el-input:hover,.mobile-select .el-input:hover{border-color:#c0c4cc}.mobile-input .el-input.is-focus,.mobile-select .el-input.is-focus{border-color:#409eff}.mobile-input .el-input__suffix,.mobile-select .el-input__suffix{right:12px}.mobile-card{background:#fff;border-radius:12px;box-shadow:0 2px 12px rgba(0,0,0,.08);overflow:hidden}.mobile-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;color:#909399}.mobile-loading .loading-icon{font-size:32px;margin-bottom:12px;animation:spin 1s linear infinite}.mobile-loading .loading-text{font-size:14px}.mobile-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;color:#909399}.mobile-empty .empty-icon{font-size:64px;margin-bottom:20px;color:#dcdfe6}.mobile-empty .empty-title{font-size:18px;margin-bottom:8px;color:#606266}.mobile-empty .empty-description{font-size:14px;margin-bottom:24px;text-align:center;line-height:1.5}@media (max-width:480px){html{font-size:14px}.mobile-btn,.mobile-input{min-height:40px;font-size:14px}}@media (max-width:375px){html{font-size:13px}.mobile-card{border-radius:8px}}@media (orientation:landscape) and (max-height:500px){.mobile-header-section{padding:12px 0}.mobile-header-section h2{font-size:20px}.mobile-empty{padding:40px 20px}.mobile-empty .empty-icon{font-size:48px;margin-bottom:16px}}@media (prefers-color-scheme:dark){body{background-color:#1a1a1a;color:#fff}.mobile-card,.mobile-input{background:#2d2d2d;color:#fff}.mobile-input{border-color:#404040}.mobile-btn.secondary{background:#2d2d2d;color:#fff;border-color:#404040}}@media (prefers-contrast:high){.mobile-btn{border:2px solid}.mobile-input{border-width:2px}.mobile-card{border:1px solid #000}}input,select,textarea{font-size:16px!important;-webkit-text-size-adjust:100%;-webkit-appearance:none;-webkit-autocomplete:off;-webkit-autocapitalize:off;-webkit-autocorrect:off}.el-select .el-input__inner{font-size:16px!important;-webkit-appearance:none!important}.el-select-dropdown{z-index:9999!important}.el-scrollbar__wrap,.mobile-scroll,[class*=mobile-],body,html{-webkit-overflow-scrolling:touch}body,html{overscroll-behavior:none}.mobile-dashboard,.mobile-port-query,.mobile-system-info,.mobile-video-tracking{-webkit-overflow-scrolling:touch;overflow-x:hidden;overscroll-behavior-y:contain}@media (prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}