:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;line-height:1.5;font-weight:400;color:#333;background-color:#f5f7fa;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html,body{width:100%;height:100%;overflow-x:hidden;-webkit-overflow-scrolling:touch}body{margin:0;min-height:100vh}#app{width:100%;min-height:100vh}a{color:#1989fa;text-decoration:none}a:hover{text-decoration:underline}button{font-family:inherit;cursor:pointer}@media(max-width:375px){html{font-size:14px}}@media(max-width:320px){html{font-size:13px}}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:#f1f1f1}::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:2px}::-webkit-scrollbar-thumb:hover{background:#a8a8a8}input,select,textarea{font-family:inherit;font-size:1rem;outline:none}.no-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;background-color:#f5f7fa}.app-container[data-v-a9931dd4]{position:relative;min-height:100vh}.bottom-nav[data-v-a9931dd4]{position:fixed;bottom:0;left:0;right:0;display:flex;justify-content:space-around;align-items:center;height:60px;background-color:#fff;border-top:1px solid #eee;box-shadow:0 -2px 8px #0000000d}.nav-item[data-v-a9931dd4]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:8px;cursor:pointer;transition:all .3s;color:#999}.nav-item.active[data-v-a9931dd4]{color:#1989fa}.nav-icon[data-v-a9931dd4]{font-size:20px;margin-bottom:4px}.nav-text[data-v-a9931dd4]{font-size:12px}.login-container[data-v-e6400b5c]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding-top:6vh;background:url(/assets/yuntubg-DU3Kw-D1.png) no-repeat center center;height:100vh;background-size:cover}.login-form[data-v-e6400b5c]{width:90%;max-width:400px;padding:20px;background-color:#fff;border-radius:8px;box-shadow:0 2px 12px #0000001a}.login-form h2[data-v-e6400b5c]{text-align:center;margin-bottom:20px;color:#333}.form-item[data-v-e6400b5c]{margin-bottom:16px}.form-item input[data-v-e6400b5c]{width:100%;padding:12px;border:1px solid #ddd;border-radius:4px;font-size:16px;box-sizing:border-box}.login-btn[data-v-e6400b5c]{width:100%;padding:12px;background-color:#1989fa;color:#fff;border:none;border-radius:4px;font-size:16px;cursor:pointer;margin-bottom:12px}.login-btn[data-v-e6400b5c]:hover{background-color:#0077e6}.register-btn[data-v-e6400b5c]{width:100%;padding:12px;background-color:#fff;color:#1989fa;border:1px solid #1989fa;border-radius:4px;font-size:16px;cursor:pointer}.register-btn[data-v-e6400b5c]:hover{background-color:#f0f8ff}.login-footer[data-v-e6400b5c]{margin-top:20px;color:#fff;font-size:12px}.device-management[data-v-2f6cdd69]{padding:16px;background-color:#f5f7fa;min-height:100vh}.page-header[data-v-2f6cdd69]{margin-bottom:20px;display:flex;justify-content:space-between;align-items:center}.page-header h1[data-v-2f6cdd69]{font-size:24px;font-weight:700;color:#333}.stats-cards[data-v-2f6cdd69]{display:flex;flex-wrap:nowrap;flex-direction:row;gap:12px;margin-bottom:20px}.stat-card[data-v-2f6cdd69]{flex:1;background-color:#fff;padding:12px;border-radius:8px;box-shadow:0 2px 4px #0000001a;text-align:center}.stat-number[data-v-2f6cdd69]{font-size:20px;font-weight:700;color:#1989fa;margin-bottom:6px}.stat-label[data-v-2f6cdd69]{font-size:12px;color:#666;word-break:keep-all}.search-form[data-v-2f6cdd69]{background-color:#fff;padding:12px;border-radius:8px;box-shadow:0 2px 4px #0000001a;margin-bottom:20px}.form-row[data-v-2f6cdd69]{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:12px}.form-item[data-v-2f6cdd69]{flex:1;min-width:100%}.form-item label[data-v-2f6cdd69]{display:block;font-size:13px;color:#666;margin-bottom:6px}.form-item input[data-v-2f6cdd69],.form-item select[data-v-2f6cdd69]{width:100%;padding:8px 10px;border:1px solid #ddd;border-radius:4px;font-size:14px;box-sizing:border-box}.form-actions[data-v-2f6cdd69]{display:flex;gap:10px;justify-content:space-between}.search-btn[data-v-2f6cdd69]{flex:1;padding:8px 16px;background-color:#1989fa;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:14px}.reset-btn[data-v-2f6cdd69]{flex:1;padding:8px 16px;background-color:#fff;color:#666;border:1px solid #ddd;border-radius:4px;cursor:pointer;font-size:14px}.header-buttons[data-v-2f6cdd69]{display:flex;gap:10px}.refresh-btn[data-v-2f6cdd69]{padding:6px 12px;background-color:#1989fa;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:14px;display:flex;align-items:center;gap:4px}.add-btn[data-v-2f6cdd69]{padding:6px 12px;background-color:#67c23a;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:14px;display:flex;align-items:center;gap:4px}.device-list[data-v-2f6cdd69]{display:flex;flex-direction:column;gap:16px}.empty-message[data-v-2f6cdd69]{text-align:center;color:#999;font-size:14px;margin-top:20px}.device-card[data-v-2f6cdd69]{background-color:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;overflow:hidden}.card-header[data-v-2f6cdd69]{display:flex;justify-content:space-between;align-items:center;padding:16px;background-color:#f5f7fa;border-bottom:1px solid #eee}.card-title[data-v-2f6cdd69]{display:flex;align-items:center;gap:12px}.card-title h3[data-v-2f6cdd69]{font-size:16px;font-weight:700;color:#333;margin:0}.device-id[data-v-2f6cdd69]{font-size:12px;color:#000;font-family:monospace}.card-content[data-v-2f6cdd69]{padding:16px}.info-row[data-v-2f6cdd69]{display:flex;margin-bottom:8px;font-size:14px}.info-label[data-v-2f6cdd69]{width:80px;color:#666;flex-shrink:0}.info-value[data-v-2f6cdd69]{color:#333;flex:1;text-align:right;word-break:break-word}.status-badge[data-v-2f6cdd69]{padding:4px 8px;border-radius:12px;font-size:12px;display:inline-block}.status-badge.offline[data-v-2f6cdd69]{background-color:#fff2e8;color:#ff976a}.status-badge.alarm[data-v-2f6cdd69]{background-color:#fff1f0;color:#f56c6c}.status-badge.normal[data-v-2f6cdd69]{background-color:#f0f9eb;color:#67c23a}.card-actions[data-v-2f6cdd69]{display:flex;gap:8px;padding:12px 16px;background-color:#fafafa;border-top:1px solid #eee}.action-btn[data-v-2f6cdd69]{flex:1;padding:6px 12px;border:none;border-radius:4px;background-color:transparent;color:#1989fa;cursor:pointer;font-size:14px;text-align:center}@media(min-width:768px){.stats-cards[data-v-2f6cdd69]{gap:16px}.stat-card[data-v-2f6cdd69]{min-width:calc(25% - 12px)}.stat-number[data-v-2f6cdd69]{font-size:24px}.stat-label[data-v-2f6cdd69]{font-size:14px}.form-item[data-v-2f6cdd69]{min-width:200px}.device-list[data-v-2f6cdd69]{flex-direction:row;flex-wrap:wrap}.device-card[data-v-2f6cdd69]{flex:1;min-width:calc(50% - 8px)}}.dialog-overlay[data-v-2f6cdd69]{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000}.dialog-container[data-v-2f6cdd69]{background-color:#fff;border-radius:8px;width:90%;max-width:400px;max-height:80vh;overflow-y:auto}.dialog-header[data-v-2f6cdd69]{display:flex;justify-content:space-between;align-items:center;padding:16px;border-bottom:1px solid #eee}.dialog-header h3[data-v-2f6cdd69]{margin:0;font-size:16px;font-weight:700;color:#333}.close-btn[data-v-2f6cdd69]{background:none;border:none;font-size:20px;color:#999;cursor:pointer;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center}.dialog-content[data-v-2f6cdd69]{padding:16px}.dialog-content .form-item[data-v-2f6cdd69]{margin-bottom:16px}.dialog-content label[data-v-2f6cdd69]{display:block;font-size:14px;color:#333;margin-bottom:8px;font-weight:500}.dialog-content input[data-v-2f6cdd69]{width:100%;padding:10px;border:1px solid #ddd;border-radius:4px;font-size:14px;box-sizing:border-box}.error-message[data-v-2f6cdd69]{color:#f56c6c;font-size:12px;margin-top:4px}.dialog-actions[data-v-2f6cdd69]{display:flex;gap:10px;padding:16px;border-top:1px solid #eee}.cancel-btn[data-v-2f6cdd69]{flex:1;padding:10px;background-color:#fff;color:#666;border:1px solid #ddd;border-radius:4px;cursor:pointer;font-size:14px}.confirm-btn[data-v-2f6cdd69]{flex:1;padding:10px;background-color:#67c23a;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:14px}@media(max-width:400px){.device-management[data-v-2f6cdd69]{padding:12px}.page-header h1[data-v-2f6cdd69]{font-size:20px}.stat-number[data-v-2f6cdd69]{font-size:18px}.stat-label[data-v-2f6cdd69]{font-size:11px}.card-header[data-v-2f6cdd69]{flex-direction:column;align-items:flex-start;gap:8px}.card-title[data-v-2f6cdd69]{flex-direction:column;align-items:flex-start;gap:4px}.info-row[data-v-2f6cdd69]{flex-direction:column;align-items:flex-start;gap:2px}.info-value[data-v-2f6cdd69]{text-align:left}}.info-value-with-btn[data-v-2f6cdd69]{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex:1}.edit-screen-btn[data-v-2f6cdd69]{padding:4px 8px;background-color:#1989fa;color:#fff;border:none;border-radius:4px;font-size:12px;cursor:pointer;transition:background-color .3s}.edit-screen-btn[data-v-2f6cdd69]:hover{background-color:#409eff}.virtual-screen-dialog .dialog-container[data-v-2f6cdd69]{max-width:800px}.device-info-section[data-v-2f6cdd69]{margin-bottom:16px;padding-bottom:16px;border-bottom:1px solid #eee}.device-info-row[data-v-2f6cdd69]{display:flex;gap:16px;margin-bottom:8px;flex-wrap:wrap}.device-info-item[data-v-2f6cdd69]{flex:1;min-width:150px}.virtual-screen-section[data-v-2f6cdd69]{margin-bottom:16px}.virtual-screen-section h4[data-v-2f6cdd69]{margin:0 0 12px;font-size:14px;color:#333;font-weight:500}.search-box[data-v-2f6cdd69]{margin-bottom:16px}.search-box input[data-v-2f6cdd69]{width:100%;padding:8px 12px;border:1px solid #ddd;border-radius:4px;font-size:14px;box-sizing:border-box}.virtual-screen-list-container[data-v-2f6cdd69]{display:flex;gap:20px;margin-top:16px}.virtual-screen-list[data-v-2f6cdd69]{flex:1;max-height:300px;overflow-y:auto;border:1px solid #eee;border-radius:4px;padding:8px}.virtual-screen-item[data-v-2f6cdd69]{padding:12px;border:1px solid #eee;border-radius:4px;margin-bottom:8px;cursor:pointer;transition:all .3s;background-color:#fff}.virtual-screen-item[data-v-2f6cdd69]:hover{background-color:#f5f7fa}.virtual-screen-item.selected[data-v-2f6cdd69]{border-color:#1989fa;background-color:#f0f7ff}.radio-container[data-v-2f6cdd69]{display:flex;align-items:center;gap:8px;margin-bottom:4px}.radio-container input[type=radio][data-v-2f6cdd69]{margin:0}.radio-container label[data-v-2f6cdd69]{font-size:14px;color:#333;cursor:pointer;margin:0;font-weight:400}.virtual-screen-description[data-v-2f6cdd69]{font-size:12px;color:#666;line-height:1.4}.current-screen-preview[data-v-2f6cdd69]{flex:1;min-width:200px;border:1px solid #eee;border-radius:4px;padding:12px;background-color:#fafafa}.current-screen-preview h4[data-v-2f6cdd69]{margin:0 0 12px;font-size:14px;color:#333;font-weight:500}.preview-content[data-v-2f6cdd69]{min-height:100px;display:flex;flex-direction:column;justify-content:center}.selected-screen-info h5[data-v-2f6cdd69]{margin:0 0 8px;font-size:14px;color:#333;font-weight:500}.screen-description[data-v-2f6cdd69]{font-size:12px;color:#666;line-height:1.4}.no-selection[data-v-2f6cdd69]{text-align:center;color:#999;font-size:14px}.restart-btn[data-v-2f6cdd69]{background-color:#f56c6c}.restart-btn[data-v-2f6cdd69]:hover{background-color:#f78989}.pagination[data-v-2f6cdd69]{display:flex;justify-content:space-between;align-items:center;background-color:#fff;padding:16px;border-radius:8px;box-shadow:0 2px 4px #0000001a;flex-wrap:wrap;gap:16px;margin-top:20px}.total[data-v-2f6cdd69]{font-size:14px;color:#666}.pagination-controls[data-v-2f6cdd69]{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.page-size[data-v-2f6cdd69]{padding:4px 8px;border:1px solid #ddd;border-radius:4px;font-size:14px}.page-btn[data-v-2f6cdd69]{padding:4px 12px;border:1px solid #ddd;border-radius:4px;background-color:#fff;cursor:pointer;font-size:14px}.page-btn.current[data-v-2f6cdd69]{background-color:#1989fa;color:#fff;border-color:#1989fa}.page-btn[data-v-2f6cdd69]:disabled{opacity:.5;cursor:not-allowed}.page-info[data-v-2f6cdd69]{display:flex;align-items:center;gap:8px;font-size:14px}.page-input[data-v-2f6cdd69]{width:50px;padding:4px 8px;border:1px solid #ddd;border-radius:4px;text-align:center}.dialog-content[data-v-5f1f309b]{padding:16px;overflow-y:auto;flex:1;display:flex;flex-direction:column;gap:20px}.form-group label[data-v-5f1f309b]{display:block;margin-bottom:8px;font-size:14px;color:#333;font-weight:500}.form-group input[data-v-5f1f309b]{width:100%;padding:8px 12px;border:1px solid #ddd;border-radius:4px;font-size:14px;box-sizing:border-box}.form-group input[data-v-5f1f309b]:focus{outline:none;border-color:#1989fa}.banner-type-selector[data-v-5f1f309b]{align-items:center;gap:16px;padding:12px;background-color:#fafafa;border-radius:8px;border:1px solid #eee}.banner-type-btn[data-v-5f1f309b]{padding:10px 20px;margin-bottom:10px;margin-right:10px;background-color:#fff;color:#606266;border:1px solid #dcdfe6;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;transition:all .3s ease;position:relative;overflow:hidden}.banner-type-btn[data-v-5f1f309b]:hover{background-color:#ecf5ff;border-color:#409eff;color:#409eff;transform:translateY(-1px);box-shadow:0 2px 8px #409eff26}.banner-type-btn.active[data-v-5f1f309b]{background-color:#409eff;color:#fff;border-color:#409eff;box-shadow:0 2px 8px #409eff40}.banner-type-btn[disabled][data-v-5f1f309b]{opacity:.5;cursor:not-allowed}.upload-section[data-v-5f1f309b]{border:1px solid #ebeef5;border-radius:10px;padding:20px;background-color:#fafafa;box-shadow:0 1px 3px #0000000d}.upload-header[data-v-5f1f309b]{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;flex-wrap:wrap;gap:12px;padding-bottom:12px;border-bottom:1px solid #ebeef5}.upload-btn[data-v-5f1f309b]{padding:10px 20px;background-color:#67c23a;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;display:flex;align-items:center;gap:6px;transition:all .3s ease;box-shadow:0 2px 4px #67c23a33}.upload-btn[data-v-5f1f309b]:hover{background-color:#85ce61;box-shadow:0 4px 8px #67c23a4d;transform:translateY(-1px)}.upload-hint[data-v-5f1f309b]{font-size:13px;color:#909399;padding:4px 12px;background-color:#fff;border-radius:4px;border:1px solid #ebeef5}.upload-area[data-v-5f1f309b]{border:2px dashed #c0c4cc;border-radius:10px;padding:20px;text-align:center;background-color:#fff;transition:all .3s ease;position:relative;overflow:hidden}.upload-area[data-v-5f1f309b]:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,#409eff,transparent);transform:scaleX(0);transition:transform .3s ease}.upload-area[data-v-5f1f309b]:hover{border-color:#409eff;background-color:#ecf5ff;box-shadow:0 2px 12px #409eff1a}.upload-area[data-v-5f1f309b]:hover:before{transform:scaleX(1)}.upload-placeholder[data-v-5f1f309b]{color:#909399;font-size:15px;font-weight:500;margin-bottom:16px;display:flex;align-items:center;justify-content:center;gap:8px}.upload-placeholder[data-v-5f1f309b]:before{content:"📁";font-size:20px}.file-list[data-v-5f1f309b]{margin-top:10px;max-height:250px;overflow-y:auto;padding-right:8px;border-top:1px solid #ebeef5;padding-top:16px}.file-list[data-v-5f1f309b]::-webkit-scrollbar{width:6px}.file-list[data-v-5f1f309b]::-webkit-scrollbar-track{background:#f1f1f1;border-radius:3px}.file-list[data-v-5f1f309b]::-webkit-scrollbar-thumb{background:#c0c4cc;border-radius:3px}.file-list[data-v-5f1f309b]::-webkit-scrollbar-thumb:hover{background:#909399}.file-item[data-v-5f1f309b]{display:flex;justify-content:space-between;align-items:center;padding:10px;margin-bottom:10px;background-color:#fff;border-radius:8px;border:1px solid #ebeef5;transition:all .3s ease;box-shadow:0 1px 2px #00000008}.file-item[data-v-5f1f309b]:hover{border-color:#409eff;box-shadow:0 2px 12px #409eff26;transform:translate(2px)}.file-info[data-v-5f1f309b]{display:flex;align-items:center;gap:12px;flex:1;overflow:hidden}.file-icon[data-v-5f1f309b]{font-size:24px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;background-color:#ecf5ff;border-radius:6px;color:#409eff}.file-name[data-v-5f1f309b]{font-size:14px;color:#303133;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}.file-delete[data-v-5f1f309b]{background-color:#f56c6c;color:#fff;border:none;border-radius:6px;width:28px;height:28px;font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s ease;opacity:.8}.file-delete[data-v-5f1f309b]:hover{background-color:#f78989;opacity:1;transform:rotate(90deg);box-shadow:0 2px 8px #f56c6c4d}.dialog-footer[data-v-5f1f309b]{display:flex;justify-content:flex-end;gap:12px;padding:16px;background-color:#f5f7fa;border-top:1px solid #eee}.cancel-btn[data-v-5f1f309b]{padding:8px 16px;background-color:#fff;color:#666;border:1px solid #ddd;border-radius:4px;cursor:pointer;font-size:14px}.cancel-btn[data-v-5f1f309b]:hover{background-color:#f5f7fa}.confirm-btn[data-v-5f1f309b]{padding:8px 16px;background-color:#1989fa;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:14px}.confirm-btn[data-v-5f1f309b]:hover{background-color:#0077e6}.banner-preview[data-v-5f1f309b]{margin-bottom:10px;width:100%}.banner-preview img[data-v-5f1f309b]{width:100%}.virtual-screen-management[data-v-83e7c0ce]{padding:16px;background-color:#f5f7fa;min-height:100vh}.page-header[data-v-83e7c0ce]{margin-bottom:20px;display:flex;justify-content:space-between;align-items:center}.page-header h1[data-v-83e7c0ce]{font-size:24px;font-weight:700;color:#333}.header-buttons[data-v-83e7c0ce]{display:flex;gap:12px}.refresh-btn[data-v-83e7c0ce]{padding:6px 12px;background-color:#1989fa;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:14px;display:flex;align-items:center;gap:4px}.add-btn[data-v-83e7c0ce]{padding:6px 12px;background-color:#67c23a;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:14px;display:flex;align-items:center;gap:4px}.virtual-screen-list[data-v-83e7c0ce]{display:flex;flex-direction:column;gap:16px;margin-bottom:20px}.virtual-screen-card[data-v-83e7c0ce]{background-color:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;overflow:hidden}.card-header[data-v-83e7c0ce]{display:flex;justify-content:space-between;align-items:center;padding:16px;background-color:#f5f7fa;border-bottom:1px solid #eee}.card-title[data-v-83e7c0ce]{display:flex;align-items:center;gap:12px}.card-title h3[data-v-83e7c0ce]{font-size:16px;font-weight:700;color:#333;margin:0}.card-content[data-v-83e7c0ce]{padding:16px}.info-row[data-v-83e7c0ce]{display:flex;margin-bottom:8px;font-size:14px}.info-label[data-v-83e7c0ce]{width:80px;color:#666;flex-shrink:0}.info-value[data-v-83e7c0ce]{color:#333;flex:1;text-align:right;word-break:break-word}.terminal-icon[data-v-83e7c0ce]{margin-left:4px}.card-actions[data-v-83e7c0ce]{display:flex;gap:8px;padding:12px 16px;background-color:#fafafa;border-top:1px solid #eee}.action-btn[data-v-83e7c0ce]{flex:1;padding:6px 12px;border:none;border-radius:4px;background-color:transparent;color:#1989fa;cursor:pointer;font-size:14px;text-align:center}.pagination[data-v-83e7c0ce]{display:flex;justify-content:space-between;align-items:center;background-color:#fff;padding:16px;border-radius:8px;box-shadow:0 2px 4px #0000001a;flex-wrap:wrap;gap:16px}.total[data-v-83e7c0ce]{font-size:14px;color:#666}.pagination-controls[data-v-83e7c0ce]{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.page-size[data-v-83e7c0ce]{padding:4px 8px;border:1px solid #ddd;border-radius:4px;font-size:14px}.page-btn[data-v-83e7c0ce]{padding:4px 12px;border:1px solid #ddd;border-radius:4px;background-color:#fff;cursor:pointer;font-size:14px}.page-btn.current[data-v-83e7c0ce]{background-color:#1989fa;color:#fff;border-color:#1989fa}.page-btn[data-v-83e7c0ce]:disabled{opacity:.5;cursor:not-allowed}.page-info[data-v-83e7c0ce]{display:flex;align-items:center;gap:8px;font-size:14px}.page-input[data-v-83e7c0ce]{width:50px;padding:4px 8px;border:1px solid #ddd;border-radius:4px;text-align:center}@media(min-width:768px){.virtual-screen-list[data-v-83e7c0ce]{flex-direction:row;flex-wrap:wrap}.virtual-screen-card[data-v-83e7c0ce]{flex:1;min-width:calc(50% - 8px)}}.dialog-overlay[data-v-83e7c0ce]{position:fixed;inset:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.dialog-container[data-v-83e7c0ce]{background-color:#fff;border-radius:8px;box-shadow:0 2px 12px #0000001a;width:90%;max-width:800px;max-height:80vh;overflow:hidden;display:flex;flex-direction:column}.dialog-header[data-v-83e7c0ce]{display:flex;justify-content:space-between;align-items:center;padding:16px;background-color:#f5f7fa;border-bottom:1px solid #eee}.dialog-header h2[data-v-83e7c0ce]{font-size:18px;font-weight:700;color:#333;margin:0}.close-btn[data-v-83e7c0ce]{background-color:transparent;border:none;font-size:24px;color:#666;cursor:pointer;padding:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:4px}.close-btn[data-v-83e7c0ce]:hover{background-color:#eee;color:#333}.dialog-content[data-v-83e7c0ce]{padding:16px;overflow-y:auto;flex:1;display:flex;flex-direction:column;gap:20px}.terminal-section[data-v-83e7c0ce]{flex:1;min-width:0}.terminal-section h3[data-v-83e7c0ce]{font-size:16px;font-weight:700;color:#333;margin:0 0 12px}.terminal-list[data-v-83e7c0ce]{border:1px solid #eee;border-radius:4px;max-height:400px;overflow-y:auto}.terminal-item[data-v-83e7c0ce]{display:flex;align-items:center;padding:10px 16px;border-bottom:1px solid #f5f7fa}.terminal-item[data-v-83e7c0ce]:last-child{border-bottom:none}.terminal-item input[type=checkbox][data-v-83e7c0ce]{margin-right:10px;cursor:pointer}.no-data[data-v-83e7c0ce]{text-align:center;padding:20px;color:#999;font-size:14px}.dialog-footer[data-v-83e7c0ce]{display:flex;justify-content:flex-end;gap:12px;padding:16px;background-color:#f5f7fa;border-top:1px solid #eee}.cancel-btn[data-v-83e7c0ce]{padding:8px 16px;background-color:#fff;color:#666;border:1px solid #ddd;border-radius:4px;cursor:pointer;font-size:14px}.cancel-btn[data-v-83e7c0ce]:hover{background-color:#f5f7fa}.confirm-btn[data-v-83e7c0ce]{padding:8px 16px;background-color:#1989fa;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:14px}.confirm-btn[data-v-83e7c0ce]:hover{background-color:#0077e6}.terminal-icon[data-v-83e7c0ce]{margin-left:4px;cursor:pointer;display:inline-block;transition:transform .2s}.terminal-icon[data-v-83e7c0ce]:hover{transform:scale(1.2)}.form-group[data-v-83e7c0ce]{margin-bottom:16px}.form-group label[data-v-83e7c0ce]{display:block;margin-bottom:8px;font-size:14px;color:#333;font-weight:500}.form-group input[data-v-83e7c0ce]{width:100%;padding:8px 12px;border:1px solid #ddd;border-radius:4px;font-size:14px;box-sizing:border-box}.form-group input[data-v-83e7c0ce]:focus{outline:none;border-color:#1989fa}.banner-type-selector[data-v-83e7c0ce]{align-items:center;gap:16px;padding:12px;background-color:#fafafa;border-radius:8px;border:1px solid #eee}.banner-type-btn[data-v-83e7c0ce]{padding:10px 20px;margin-bottom:10px;margin-right:10px;background-color:#fff;color:#606266;border:1px solid #dcdfe6;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;transition:all .3s ease;position:relative;overflow:hidden}.banner-type-btn[data-v-83e7c0ce]:hover{background-color:#ecf5ff;border-color:#409eff;color:#409eff;transform:translateY(-1px);box-shadow:0 2px 8px #409eff26}.banner-type-btn.active[data-v-83e7c0ce]{background-color:#409eff;color:#fff;border-color:#409eff;box-shadow:0 2px 8px #409eff40}.play-interval[data-v-83e7c0ce]{display:flex;align-items:center;gap:10px;font-size:14px;color:#606266;margin-left:auto;padding:8px 12px;background-color:#fff;border-radius:6px;border:1px solid #eee}.play-interval input[data-v-83e7c0ce]{width:80px;padding:6px 10px;border:1px solid #dcdfe6;border-radius:4px;font-size:14px;transition:border-color .3s}.play-interval input[data-v-83e7c0ce]:focus{outline:none;border-color:#409eff}.upload-section[data-v-83e7c0ce]{border:1px solid #ebeef5;border-radius:10px;padding:20px;background-color:#fafafa;box-shadow:0 1px 3px #0000000d}.upload-header[data-v-83e7c0ce]{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;flex-wrap:wrap;gap:12px;padding-bottom:12px;border-bottom:1px solid #ebeef5}.upload-btn[data-v-83e7c0ce]{padding:10px 20px;background-color:#67c23a;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;display:flex;align-items:center;gap:6px;transition:all .3s ease;box-shadow:0 2px 4px #67c23a33}.upload-btn[data-v-83e7c0ce]:hover{background-color:#85ce61;box-shadow:0 4px 8px #67c23a4d;transform:translateY(-1px)}.upload-hint[data-v-83e7c0ce]{font-size:13px;color:#909399;padding:4px 12px;background-color:#fff;border-radius:4px;border:1px solid #ebeef5}.upload-area[data-v-83e7c0ce]{border:2px dashed #c0c4cc;border-radius:10px;padding:40px 20px;text-align:center;background-color:#fff;transition:all .3s ease;position:relative;overflow:hidden}.upload-area[data-v-83e7c0ce]:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,#409eff,transparent);transform:scaleX(0);transition:transform .3s ease}.upload-area[data-v-83e7c0ce]:hover{border-color:#409eff;background-color:#ecf5ff;box-shadow:0 2px 12px #409eff1a}.upload-area[data-v-83e7c0ce]:hover:before{transform:scaleX(1)}.upload-placeholder[data-v-83e7c0ce]{color:#909399;font-size:15px;font-weight:500;margin-bottom:16px;display:flex;align-items:center;justify-content:center;gap:8px}.upload-placeholder[data-v-83e7c0ce]:before{content:"📁";font-size:20px}.file-list[data-v-83e7c0ce]{margin-top:20px;max-height:250px;overflow-y:auto;padding-right:8px;border-top:1px solid #ebeef5;padding-top:16px}.file-list[data-v-83e7c0ce]::-webkit-scrollbar{width:6px}.file-list[data-v-83e7c0ce]::-webkit-scrollbar-track{background:#f1f1f1;border-radius:3px}.file-list[data-v-83e7c0ce]::-webkit-scrollbar-thumb{background:#c0c4cc;border-radius:3px}.file-list[data-v-83e7c0ce]::-webkit-scrollbar-thumb:hover{background:#909399}.file-item[data-v-83e7c0ce]{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;margin-bottom:10px;background-color:#fff;border-radius:8px;border:1px solid #ebeef5;transition:all .3s ease;box-shadow:0 1px 2px #00000008}.file-item[data-v-83e7c0ce]:hover{border-color:#409eff;box-shadow:0 2px 12px #409eff26;transform:translate(2px)}.file-info[data-v-83e7c0ce]{display:flex;align-items:center;gap:12px;flex:1;overflow:hidden}.file-icon[data-v-83e7c0ce]{font-size:24px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;background-color:#ecf5ff;border-radius:6px;color:#409eff}.file-name[data-v-83e7c0ce]{font-size:14px;color:#303133;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}.file-delete[data-v-83e7c0ce]{background-color:#f56c6c;color:#fff;border:none;border-radius:6px;width:28px;height:28px;font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s ease;opacity:.8}.file-delete[data-v-83e7c0ce]:hover{background-color:#f78989;opacity:1;transform:rotate(90deg);box-shadow:0 2px 8px #f56c6c4d}.banner-files-list[data-v-83e7c0ce]{display:flex;flex-direction:column;gap:8px;margin-top:8px;width:100%}.banner-file-item[data-v-83e7c0ce]{padding:8px 12px;background-color:#f5f7fa;border-radius:4px;border:1px solid #eee}.banner-file-info[data-v-83e7c0ce]{display:flex;align-items:center;gap:8px}.my-page[data-v-b7092359]{padding:16px;background-color:#f5f7fa;min-height:100vh}.profile-section[data-v-b7092359]{display:flex;align-items:center;background-color:#fff;padding:20px;border-radius:12px;box-shadow:0 2px 4px #0000001a;margin-bottom:24px}.avatar[data-v-b7092359]{margin-right:20px}.avatar img[data-v-b7092359]{width:80px;height:80px;border-radius:50%;object-fit:cover;border:2px solid #1989fa}.user-info[data-v-b7092359]{flex:1;display:flex;align-items:center;justify-content:space-between}.username[data-v-b7092359]{font-size:20px;font-weight:700;color:#333;margin-bottom:8px}.user-role[data-v-b7092359]{font-size:14px;color:#666;margin-bottom:4px}.user-details[data-v-b7092359]{font-size:13px;color:#999;margin:2px 0;word-break:break-all}.menu-section[data-v-b7092359]{background-color:#fff;border-radius:12px;box-shadow:0 2px 4px #0000001a}.menu-item[data-v-b7092359]{display:flex;align-items:center;padding:16px 20px;cursor:pointer;transition:background-color .3s;border-bottom:1px solid #f0f0f0}.menu-item[data-v-b7092359]:last-child{border-bottom:none}.menu-item[data-v-b7092359]:hover{background-color:#f5f7fa}.menu-icon[data-v-b7092359]{font-size:20px;margin-right:16px;color:#1989fa}.menu-text[data-v-b7092359]{font-size:16px;color:#333;flex:1}.dialog-overlay[data-v-b7092359]{position:fixed;inset:0;background-color:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000}.dialog-container[data-v-b7092359]{background-color:#fff;border-radius:8px;width:400px;max-width:90%;box-shadow:0 4px 12px #00000026}.dialog-header[data-v-b7092359]{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid #f0f0f0}.dialog-header h2[data-v-b7092359]{font-size:18px;font-weight:700;color:#333;margin:0}.close-btn[data-v-b7092359]{width:32px;height:32px;border:none;background-color:transparent;font-size:24px;color:#999;cursor:pointer;display:flex;justify-content:center;align-items:center;padding:0;line-height:1}.close-btn[data-v-b7092359]:hover{color:#666}.dialog-content[data-v-b7092359]{padding:20px}.dialog-content p[data-v-b7092359]{margin:0;color:#333;font-size:16px;line-height:1.5}.dialog-footer[data-v-b7092359]{display:flex;justify-content:flex-end;gap:12px;padding:16px 20px;border-top:1px solid #f0f0f0}.cancel-btn[data-v-b7092359],.confirm-btn[data-v-b7092359]{padding:8px 16px;border-radius:4px;cursor:pointer;font-size:14px;border:1px solid #d9d9d9;transition:all .3s}.cancel-btn[data-v-b7092359]{background-color:#fff;color:#333}.cancel-btn[data-v-b7092359]:hover{background-color:#f5f5f5}.confirm-btn[data-v-b7092359]{background-color:#1989fa;color:#fff;border-color:#1989fa}.confirm-btn[data-v-b7092359]:hover{background-color:#409eff;border-color:#409eff}
