@import url(https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@300;400;500;700&display=swap);body{margin:0;padding:0}#app,body{font-family:Noto Sans SC,Source Han Sans SC,Microsoft YaHei,sans-serif}#app{height:100vh}*{font-family:Noto Sans SC,Source Han Sans SC,Microsoft YaHei,sans-serif}.login-container[data-v-06b6c8b1]{display:flex;justify-content:center;align-items:center;height:100vh;background-color:#f5f7fa}.login-card[data-v-06b6c8b1]{width:450px;padding:20px}.logo-container[data-v-06b6c8b1]{text-align:center;margin-bottom:20px}.logo[data-v-06b6c8b1]{height:60px;margin-bottom:10px}.login-tabs[data-v-06b6c8b1]{margin-top:20px}.submit-btn[data-v-06b6c8b1]{width:100%}.project-add[data-v-c2f9e304]{padding:20px}.project-form[data-v-c2f9e304]{max-width:600px}.template-container[data-v-4716c8ff]{padding:20px;height:100%;display:flex;flex-direction:column}.template-header[data-v-4716c8ff]{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.template-header h2[data-v-4716c8ff]{margin:0;font-size:24px}.template-content[data-v-4716c8ff]{flex:1;overflow-y:auto}.empty-container[data-v-4716c8ff],.loading-container[data-v-4716c8ff]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px}.empty-container .el-button[data-v-4716c8ff]{margin-top:20px}.template-list[data-v-4716c8ff]{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px}.template-card[data-v-4716c8ff]{height:100%;display:flex;flex-direction:column}.template-card-header[data-v-4716c8ff]{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.template-card-header h3[data-v-4716c8ff]{margin:0;font-size:16px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:180px}.template-actions[data-v-4716c8ff]{display:flex;gap:8px}.template-image[data-v-4716c8ff]{width:100%;height:160px;display:flex;justify-content:center;align-items:center;background-color:#f5f7fa;border:1px solid #dcdfe6;border-radius:4px;overflow:hidden;cursor:pointer;transition:transform .2s}.template-image[data-v-4716c8ff]:hover{transform:scale(1.02)}.topology-image[data-v-4716c8ff]{max-width:100%;max-height:100%;-o-object-fit:contain;object-fit:contain}.no-image[data-v-4716c8ff]{display:flex;flex-direction:column;align-items:center;justify-content:center;color:#909399}.no-image .el-icon[data-v-4716c8ff]{font-size:32px;margin-bottom:8px}.template-info[data-v-4716c8ff]{margin-top:15px;display:flex;flex-direction:column}.template-info p[data-v-4716c8ff]{margin:0;margin-bottom:10px;color:#606266;height:40px;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.no-description[data-v-4716c8ff]{font-style:italic;color:#909399!important}.template-meta[data-v-4716c8ff]{display:flex;justify-content:space-between;font-size:12px;color:#909399}.image-preview-dialog[data-v-4716c8ff] .el-dialog__body{padding:10px;overflow:auto;max-height:75vh}.image-preview-container[data-v-4716c8ff]{display:flex;justify-content:center;align-items:center;width:100%;min-height:300px;overflow:auto}.preview-image[data-v-4716c8ff]{max-width:100%;-o-object-fit:contain;object-fit:contain}[data-v-4716c8ff] .el-dialog__body::-webkit-scrollbar{width:6px;height:6px}[data-v-4716c8ff] .el-dialog__body::-webkit-scrollbar-thumb{background:#c0c4cc;border-radius:3px}[data-v-4716c8ff] .el-dialog__body::-webkit-scrollbar-track{background:#f6f6f6}.apikey-container[data-v-5c86c6ba]{padding:20px;height:100%;overflow-y:auto}.header[data-v-5c86c6ba]{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.key-list[data-v-5c86c6ba]{margin-top:20px}.key-text[data-v-5c86c6ba]{display:flex;align-items:center;justify-content:space-between;font-family:monospace}.dialog-footer[data-v-5c86c6ba]{display:flex;justify-content:flex-end;margin-top:20px}.add-template-container[data-v-77144750]{padding:20px;height:100%;overflow-y:auto}.template-header[data-v-77144750]{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.template-header h2[data-v-77144750]{margin:0;font-size:24px}.template-form-container[data-v-77144750]{max-width:800px}.image-preview[data-v-77144750]{margin-top:15px;border:1px dashed #dcdfe6;padding:10px;text-align:center;border-radius:4px}.image-preview img[data-v-77144750]{max-width:100%;max-height:200px}.terraform-preview[data-v-77144750]{margin-top:15px;border:1px solid #dcdfe6;border-radius:4px;overflow:hidden}.preview-header[data-v-77144750]{display:flex;justify-content:space-between;align-items:center;padding:8px 15px;background-color:#f5f7fa;border-bottom:1px solid #dcdfe6}.terraform-preview pre[data-v-77144750]{margin:0;padding:15px;background-color:#1e1e1e;color:#d4d4d4;font-family:Courier New,Courier,monospace;font-size:12px;overflow-x:auto;max-height:300px}.terraform-preview code[data-v-77144750]{white-space:pre-wrap}.el-form-item[data-v-77144750]{margin-bottom:25px}.edit-template-container[data-v-35819311]{padding:20px;height:100%;overflow-y:auto}.template-header[data-v-35819311]{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.template-header h2[data-v-35819311]{margin:0;font-size:24px}.error-container[data-v-35819311],.loading-container[data-v-35819311]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px}.error-container .el-button[data-v-35819311]{margin-top:20px}.template-form-container[data-v-35819311]{max-width:800px}.image-preview[data-v-35819311]{margin-top:15px;border:1px dashed #dcdfe6;padding:10px;text-align:center;border-radius:4px;position:relative}.image-preview img[data-v-35819311]{max-width:100%;max-height:200px}.image-caption[data-v-35819311]{position:absolute;bottom:0;left:0;right:0;background-color:rgba(0,0,0,.5);color:#fff;padding:5px;font-size:12px}.terraform-editor[data-v-35819311]{border:1px solid #dcdfe6;border-radius:4px;overflow:hidden}.el-form-item[data-v-35819311]{margin-bottom:25px}.mermaid-container[data-v-ffc39372]{width:100%;margin:16px 0;border:1px solid #e4e7ed;border-radius:4px;overflow:hidden}.diagram-header[data-v-ffc39372]{display:flex;justify-content:space-between;align-items:center;padding:8px 16px;background-color:#f5f7fa;border-bottom:1px solid #e4e7ed}.diagram-header h4[data-v-ffc39372]{margin:0;font-size:16px;color:#333}.diagram-actions[data-v-ffc39372]{display:flex}.debug-info[data-v-ffc39372]{font-family:monospace;background-color:#f0f9eb;border:1px solid #e1f3d8;border-radius:4px;padding:10px;margin:10px;color:#606266;font-size:12px}.diagram-content[data-v-ffc39372]{padding:16px;min-height:350px;overflow:auto;background-color:#fff}.render-container[data-v-ffc39372]{width:100%;min-height:200px;margin-bottom:20px;padding:10px;background-color:#f9f9f9;border-radius:4px;border:1px dashed #dcdfe6;cursor:pointer;transition:all .3s}.render-container[data-v-ffc39372]:hover{background-color:#f0f0f0;box-shadow:0 0 8px rgba(0,0,0,.1)}.code-container[data-v-ffc39372]{margin-top:20px;border-top:1px solid #ebeef5;padding-top:20px}.code-block[data-v-ffc39372]{font-family:Courier New,Courier,monospace;background-color:#f8f8f8;border:1px solid #e4e7ed;border-radius:4px;padding:15px;overflow-x:auto;white-space:pre-wrap;word-break:break-word;font-size:12px;line-height:1.5}[data-v-ffc39372] .mermaid svg{width:100%!important;height:auto!important;min-height:200px!important;max-width:100%!important}[data-v-ffc39372] .mermaid{overflow:visible!important}.diagram-dialog[data-v-ffc39372]{display:flex;flex-direction:column}.fullscreen-diagram-container[data-v-ffc39372]{height:70vh;overflow:hidden;position:relative;border:1px solid #e4e7ed;border-radius:4px;background-color:#f9f9f9}.fullscreen-diagram[data-v-ffc39372]{width:100%;height:100%;display:flex;justify-content:center;align-items:center;overflow:hidden}[data-v-ffc39372] .fullscreen-diagram .mermaid{max-width:100%;max-height:100%;transform-origin:center center}[data-v-ffc39372] .fullscreen-diagram .mermaid svg{width:auto!important;max-width:none!important;height:auto!important;min-height:auto!important;transform-origin:center center;transition:transform .1s}.zoom-controls[data-v-ffc39372]{margin-top:16px;display:flex;justify-content:center}.terraform-container[data-v-aa112890]{width:100%;margin:16px 0;border:1px solid #e4e7ed;border-radius:4px;background-color:#fff}.terraform-header[data-v-aa112890]{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background-color:#f5f7fa;border-bottom:1px solid #e4e7ed}.terraform-header h4[data-v-aa112890]{margin:0;font-size:16px;color:#333}.terraform-actions[data-v-aa112890]{display:flex;gap:8px}.terraform-editor[data-v-aa112890]{padding:16px}.terraform-editor[data-v-aa112890] .el-textarea__inner{font-family:Courier New,Courier,monospace;font-size:14px;line-height:1.5}.terraform-footer[data-v-aa112890]{padding:16px;display:flex;justify-content:flex-end;align-items:center;border-top:1px solid #e4e7ed}.deploy-form[data-v-aa112890]{display:flex;align-items:center;gap:12px}.api-key-select[data-v-aa112890],.deploy-name[data-v-aa112890]{width:200px}.status-header[data-v-aa112890]{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.status-badge[data-v-aa112890]{padding:6px 12px;border-radius:4px;font-weight:700;font-size:14px}.status-in-progress[data-v-aa112890]{background-color:#e6f7ff;color:#1890ff}.status-success[data-v-aa112890]{background-color:#f6ffed;color:#52c41a}.status-error[data-v-aa112890]{background-color:#fff2f0;color:#f5222d}.deployment-log[data-v-aa112890]{margin-top:24px;border:1px solid #f0f0f0;border-radius:4px;padding:16px}.error-log[data-v-aa112890]{background-color:#fff2f0;color:#f5222d;padding:12px;border-radius:4px;font-family:Courier New,Courier,monospace;white-space:pre-wrap;font-size:14px;overflow-x:auto}.deployment-summary[data-v-aa112890]{margin-top:24px;border:1px solid #f0f0f0;border-radius:4px;padding:16px}.output-block[data-v-aa112890]{background-color:#f5f7fa;padding:12px;border-radius:4px;font-family:Courier New,Courier,monospace;white-space:pre-wrap;font-size:14px;overflow-x:auto}.file-upload-container[data-v-1fc296a9]{display:flex;align-items:flex-start;position:relative}.upload-preview-container[data-v-1fc296a9]{position:absolute;bottom:100%;left:0;width:100%;min-height:10px;z-index:10}.upload-preview[data-v-1fc296a9]{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:5px;padding:5px;background-color:#fff;border:1px solid #dcdfe6;border-radius:4px;box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.uploaded-file[data-v-1fc296a9]{position:relative;display:flex;flex-direction:column;align-items:center;margin:2px}.thumbnail-preview[data-v-1fc296a9]{width:40px;height:40px;-o-object-fit:cover;object-fit:cover;border-radius:4px;border:1px solid #dcdfe6}.delete-file[data-v-1fc296a9]{position:absolute;top:-3px;right:-3px;background-color:hsla(0,0%,100%,.8);border-radius:50%;width:16px;height:16px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#f56c6c;font-weight:700;font-size:12px}.delete-file[data-v-1fc296a9]:hover{background-color:#f56c6c;color:#fff}.upload-button[data-v-1fc296a9]{display:flex;align-items:center;justify-content:center}.workspace-container{display:flex;width:100%;height:100vh;overflow:hidden}.sidebar{width:240px;background-color:#304156;color:#bfcbd9;display:flex;flex-direction:column;overflow:hidden}.sidebar-bottom,.sidebar-top{overflow:auto}.sidebar-bottom{display:flex;flex-direction:column;border-top:1px solid #1f2d3d}.sidebar-menu{height:100%;border-right:none}.resource-header{display:flex;justify-content:space-between;align-items:center;padding:10px;background-color:#263445;border-bottom:1px solid #1f2d3d}.resource-header h3{margin:0;font-size:14px;color:#bfcbd9}.resource-content{padding:10px;overflow-y:auto;height:calc(100% - 40px);color:#bfcbd9;background-color:#304156}.resource-node{display:flex;align-items:center}.resource-node .el-icon{margin-right:5px}.chat-panel{flex:0 0 auto;display:flex;flex-direction:column;border-right:1px solid #dcdfe6;background-color:#fff;box-sizing:border-box;transition:width .05s ease}.chat-header{padding:10px;background-color:#f5f7fa;border-bottom:1px solid #dcdfe6;display:flex;justify-content:space-between;align-items:center}.chat-header h3{margin:0;font-size:16px;flex:1;text-align:left}.clear-screen-btn{margin-left:10px}.chat-container{flex:1;display:flex;flex-direction:column;overflow:hidden}.chat-messages{flex:1;padding:10px;overflow-y:auto;background-color:#fff}.message{margin-bottom:16px;display:flex;flex-direction:column;align-items:flex-start}.message.user{align-items:flex-end}.message-wrapper{display:flex;align-items:flex-start;width:100%;gap:10px}.message.user .message-wrapper{justify-content:flex-end}.message-avatar{flex-shrink:0;width:36px;height:36px}.avatar-image{width:100%;height:100%;border-radius:50%;-o-object-fit:cover;object-fit:cover}.message-content{padding:8px 12px;border-radius:4px;max-width:calc(80% - 46px);word-break:break-word;font-size:13px;font-weight:400;white-space:pre-wrap}.message.user .message-content{max-width:80%}.message.system .message-content{background-color:#f0f0f0}.message.user .message-content{background-color:#409eff;color:#fff}.chat-input{padding:10px;border-top:1px solid #dcdfe6;display:flex;flex-direction:column}.chat-input .el-button{margin-top:10px;align-self:flex-end}.resize-handle{background-color:#dcdfe6;transition:background-color .2s;z-index:100;position:relative}.resize-handle:hover{background-color:#409eff}.resize-handle.horizontal{height:8px;cursor:ns-resize;width:100%;margin:2px 0;position:relative}.resize-handle.horizontal:before{content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:30px;height:2px;background-color:#909399;border-radius:1px}.resize-handle.vertical{width:10px;cursor:ew-resize;height:100%;margin:0;position:relative}.resize-handle.vertical:before{content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:2px;height:30px;background-color:#909399;border-radius:1px}.resize-handle.vertical:hover{background-color:#d4e4fa;cursor:col-resize}.resize-handle.vertical:hover:before{background-color:#409eff;width:3px;height:40px}.main-content{flex:1;display:flex;flex-direction:column;overflow:hidden;background-color:#fff}.header{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #dcdfe6;padding:0 10px;font-size:.9em}.header h2{font-size:1.2em;margin:0}.user-dropdown{display:flex;align-items:center;gap:5px;padding:5px 8px;border-radius:4px;background-color:#f0f0f0;cursor:pointer;transition:background-color .3s}.user-dropdown:hover{background-color:#e0e0e0}.header-right{display:flex;align-items:center}.el-dropdown-menu__item.is-disabled{background-color:#f5f7fa!important;cursor:default!important}.el-dropdown-menu__item.is-disabled:hover{background-color:#f5f7fa!important}.content-section{border-bottom:1px solid #dcdfe6;display:flex;flex-direction:column;overflow:hidden;min-height:50px}.section-header{padding:8px 10px;border-bottom:1px solid #ebeef5;display:flex;justify-content:space-between;align-items:center;background-color:#f5f7fa}.section-header h3{margin:0;font-size:14px;font-weight:700}.section-content{padding:8px;overflow-y:auto;flex:1;font-size:12px}.placeholder-content{color:#909399;text-align:center;padding:10px;font-style:italic}.cloud-section,.project-section,.status-section,.summary-section{height:auto}.status-details,.summary-details{height:100%;overflow-y:auto}.summary-item{display:flex;justify-content:space-between;margin-bottom:5px;font-size:12px}.summary-label{color:#606266}.summary-value{font-weight:700}.status-actions,.summary-actions{display:flex;align-items:center}.format-heading-small{font-size:14px;font-weight:400;display:inline-block;margin:5px 0}.form-container{margin-top:10px;background-color:#fff;border:1px solid #dcdfe6;border-radius:4px;padding:15px;width:100%;max-width:400px;align-self:flex-start}.form-fields{margin-bottom:15px}.form-field{margin-bottom:10px}.form-field label{display:block;margin-bottom:5px;font-weight:700;color:#333}.form-actions{display:flex;justify-content:flex-end;margin-top:15px}.options-container{margin-top:10px;display:flex;flex-wrap:wrap;gap:8px}.region-container{margin-top:10px;background-color:#f5f7fa;border:1px solid #dcdfe6;border-radius:4px;padding:15px;width:100%;max-width:400px;align-self:flex-start;display:flex;flex-direction:column;gap:10px}.region-header{font-weight:700;font-size:14px;color:#303133;margin-bottom:5px}.region-select{width:100%}.region-button{align-self:flex-end;margin-top:5px}.selected-region-container{margin-top:10px;background-color:#ecf5ff;border:1px solid #d9ecff;border-radius:4px;padding:10px 15px;width:100%;max-width:400px;align-self:flex-start;display:flex;align-items:center;gap:10px}.selected-region-header{font-weight:700;font-size:14px;color:#409eff}.selected-region-value{font-size:14px;color:#303133;background-color:#fff;border-radius:3px;padding:2px 8px;border:1px solid #c0c4cc}.query-button-container{margin-top:10px;display:flex;justify-content:flex-end}.query-button{margin-left:10px}.query-result{margin-top:10px;overflow-x:auto}.query-result table{width:100%;border-collapse:collapse;font-size:13px;margin-top:10px;background-color:#fff}.query-result th{background-color:#f5f7fa;text-align:left;font-weight:700}.query-result td,.query-result th{padding:8px;border:1px solid #dcdfe6}.query-result tr:nth-child(2n){background-color:#fafafa}.query-result tr:hover{background-color:#f0f2f5}.query-result tr[colspan="2"]{background-color:#ecf5ff;color:#409eff;font-weight:700}.resource-selection-container{margin-top:10px;background-color:#f5f7fa;border:1px solid #dcdfe6;border-radius:4px;padding:15px;width:100%;max-width:400px;align-self:flex-start}.resource-header{font-weight:700;font-size:14px;color:#303133;margin-bottom:12px}.resource-options{display:flex;flex-direction:column;gap:10px;margin-bottom:15px}.resource-option{margin-bottom:8px}.resources-button{align-self:flex-end;margin-top:10px}.debug-info{margin-top:10px;padding:10px;background-color:#f0f0f0;border:1px solid #dcdfe6;border-radius:4px;font-size:12px;color:#909399}.deployment-tree{height:100%;overflow-y:auto;color:#bfcbd9;background-color:#304156}.deployment-node{display:flex;align-items:center;color:#bfcbd9;padding:4px 0}.deployment-node .el-icon{margin-right:5px;color:#bfcbd9}.deployment-node span{color:#bfcbd9}.no-resources{color:#bfcbd9;text-align:center;padding:10px;font-style:italic;background-color:#304156}.error-message{background-color:#fef0f0;color:#f56c6c;padding:10px;border-radius:4px;border-left:4px solid #f56c6c;margin-bottom:10px}.error-details{background-color:#f8f8f8;border:1px solid #e0e0e0;border-radius:4px;padding:10px;margin-top:8px;max-height:200px;overflow-y:auto}.error-details pre{margin:0;white-space:pre-wrap;font-family:monospace;font-size:12px}.success-message{background-color:#f0f9eb;color:#67c23a;border-left:4px solid #67c23a}.details-message,.success-message{padding:10px;border-radius:4px;margin-bottom:10px}.details-message{background-color:#ecf5ff;color:#409eff;border-left:4px solid #409eff}.details-message h4{margin-top:0;margin-bottom:8px}.details-message ul{margin:0;padding-left:20px}.refresh-button-container{margin-top:10px;display:flex;justify-content:flex-end}.topology-container{display:flex;flex-direction:column;align-items:center;padding:20px;background-color:#fff;border:1px solid #dcdfe6;border-radius:4px}.topology-info{display:flex;justify-content:space-between;width:100%;margin-bottom:20px}.topology-image-container{height:200px;background-color:#f5f7fa;border:1px dashed #dcdfe6;border-radius:4px}.topology-image-container,.topology-image-wrapper{width:100%;display:flex;justify-content:center;align-items:center}.topology-image-wrapper{height:100%;cursor:zoom-in;position:relative;transition:transform .2s ease}.topology-image-wrapper:hover{transform:scale(1.02)}.topology-image-wrapper:hover:after{content:"点击查看大图";position:absolute;bottom:10px;left:50%;transform:translateX(-50%);background-color:rgba(0,0,0,.7);color:#fff;padding:5px 10px;border-radius:4px;font-size:12px;pointer-events:none}.topology-image{max-width:100%;max-height:100%}.topology-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;color:#909399}.topology-placeholder .el-icon{margin-bottom:10px}.dropdown-container{display:flex;align-items:center;white-space:nowrap}.dropdown-label{margin-right:5px;font-size:12px}.resize-handle.vertical.middle-right{width:12px!important;background-color:#e9e9e9!important;border-left:1px solid #ccc!important;border-right:1px solid #ccc!important;position:relative!important;z-index:101!important;cursor:col-resize!important}.resize-handle.vertical.middle-right:hover{background-color:#d4e4fa!important}.resize-handle.vertical.middle-right:before{content:"⋮";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-size:16px;color:#909399;line-height:1}.resize-handle.vertical.middle-right:hover:before{color:#409eff}.topology-dialog-content{display:flex;flex-direction:column;align-items:center;height:70vh;overflow:hidden}.topology-zoom-container{width:100%;height:calc(100% - 50px);overflow:hidden;position:relative;background:#f5f7fa;display:flex;justify-content:center;align-items:center;cursor:grab}.topology-zoom-container:active{cursor:grabbing!important}.topology-dialog-image{max-width:none!important;max-height:none!important;width:auto!important;height:auto!important;cursor:inherit!important;-o-object-fit:none!important;object-fit:none!important;transition:transform .1s ease;transform-origin:center center;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-user-drag:none}.zoom-controls{display:flex;align-items:center;justify-content:center;margin-top:15px;gap:10px}.zoom-level{min-width:60px;text-align:center;font-size:14px;font-weight:700}.topology-image{cursor:zoom-in}.image-error-message{color:#f56c6c;margin-top:10px}.deepseek-response-container{margin-top:10px;display:flex;justify-content:flex-end}.fill-button{margin-left:10px}.streaming-indicator{color:#409eff;margin-top:8px;animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.6}50%{opacity:1}}.template-selection-container{margin-top:10px;background-color:#f5f7fa;border:1px solid #dcdfe6;border-radius:4px;padding:15px;width:100%;max-width:600px;align-self:flex-start}.template-header{font-weight:700;font-size:14px;color:#303133;margin-bottom:12px}.template-list{display:flex;flex-wrap:wrap;gap:15px;margin-bottom:10px}.template-item{width:120px;cursor:pointer;transition:transform .2s}.template-item:hover{transform:scale(1.05)}.template-image{width:120px;height:120px;border:1px solid #dcdfe6;border-radius:4px;overflow:hidden;display:flex;justify-content:center;align-items:center;background-color:#f0f2f5}.template-image img{max-width:100%;max-height:100%;-o-object-fit:contain;object-fit:contain}.placeholder-image{display:flex;flex-direction:column;align-items:center;justify-content:center;color:#909399;width:100%;height:100%}.placeholder-image .el-icon{font-size:32px;margin-bottom:8px}.template-name{margin-top:8px;text-align:center;font-size:12px;color:#303133;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.no-templates{color:#909399;font-style:italic;text-align:center;padding:20px}.terraform-container{margin-top:10px;background-color:#f5f7fa;border:1px solid #dcdfe6;border-radius:4px;padding:15px;width:100%;max-width:600px;align-self:flex-start}.terraform-header{font-weight:700;font-size:14px;color:#303133;margin-bottom:12px}.terraform-content{max-height:300px;overflow-y:auto;background-color:#1e1e1e;border-radius:4px;padding:10px;margin-bottom:15px;position:relative}.terraform-actions{position:absolute;top:5px;right:5px;z-index:10;background-color:rgba(30,30,30,.7);border-radius:4px}.terraform-actions .el-button{color:#fff}.terraform-actions .el-button:hover{color:#409eff}.terraform-content pre{margin:0;white-space:pre-wrap}.terraform-content code{color:#d4d4d4;font-family:Courier New,Courier,monospace;font-size:12px}.confirm-deploy-container{display:flex;justify-content:flex-end}.deploy-progress-container{margin-top:10px;background-color:#f5f7fa;border:1px solid #dcdfe6;border-radius:4px;padding:15px;width:100%;max-width:600px;align-self:flex-start}.deploy-progress-header{font-weight:700;font-size:14px;color:#303133;margin-bottom:12px}.deploy-progress-bar{margin-bottom:15px}.resources-status{margin-top:15px;max-height:200px;overflow-y:auto}.resource-item{display:flex;align-items:center;margin-bottom:8px}.resource-item .el-icon{margin-right:8px;font-size:18px}.resource-item .success-icon{color:#67c23a}.resource-item .error-icon{color:#f56c6c}.resource-item .pending-icon{color:#909399}.deploy-message{margin-top:15px;font-style:italic;color:#606266}.deploy-resources-container{margin-top:10px;background-color:#f5f7fa;border:1px solid #dcdfe6;border-radius:4px;padding:15px;width:100%;max-width:660px;align-self:flex-start;position:relative;overflow:hidden}.deploy-resources-container:before{content:"Terraform模板部署";position:absolute;top:-10px;right:15px;background-color:#409eff;color:#fff;padding:2px 10px;border-radius:12px;font-size:12px;font-weight:700}.deploy-resources-header{margin-bottom:15px}.deploy-resources-header h4{font-size:15px;font-weight:700;color:#303133;margin:0 0 5px 0}.deploy-resources-header p{font-size:13px;color:#606266;margin:0}.deploy-resources-list{margin-top:20px}.deploy-resources-list h4{font-size:14px;font-weight:700;color:#303133;margin:0 0 10px 0}.deploy-resources-output{margin-top:20px}.deploy-resources-output h4{font-size:14px;font-weight:700;color:#303133;margin:0 0 10px 0}.deploy-resources-output pre{background-color:#f8f8f8;padding:10px;border-radius:4px;max-height:200px;overflow-y:auto;margin:0;white-space:pre-wrap;word-break:break-word;font-size:11px;line-height:1.4}.deploy-resources-output code{font-family:Courier New,Courier,monospace;font-size:12px;white-space:pre-wrap}.deploy-resources-error{margin-top:20px}.deploy-resources-error h4{font-size:14px;font-weight:700;color:#f56c6c;margin:0 0 10px 0}.deploy-resources-logs{margin-top:20px}.deploy-resources-logs h4{font-size:14px;font-weight:700;color:#303133;margin:0 0 10px 0}.deploy-resources-logs pre{background-color:#f8f8f8;padding:10px;border-radius:4px;max-height:200px;overflow-y:auto;margin:0;white-space:pre-wrap;word-break:break-word;font-size:11px;line-height:1.4}.deploy-resources-logs code{font-family:Courier New,Courier,monospace;font-size:12px;white-space:pre-wrap}.deploy-resources-list .el-table{margin-bottom:15px;max-width:100%;table-layout:fixed}.deploy-resources-list .el-table .cell{word-break:break-word;white-space:normal}.topology-dialog .el-dialog__body{padding:0;overflow:hidden}.topology-dialog .el-overlay,.topology-zoom-container{pointer-events:auto!important}.topology-zoom-container{z-index:2001}.topology-dialog .el-dialog,.topology-dialog .el-dialog__body,.topology-dialog .el-dialog__wrapper,.topology-dialog .el-overlay-dialog,.topology-dialog .topology-dialog-content{pointer-events:auto!important}.zoom-controls .el-button{z-index:2002;position:relative}.topology-dialog .el-dialog{position:relative;z-index:2000}.topology-dialog .el-dialog .topology-dialog-content{position:relative;z-index:2001;overflow:hidden}.topology-dialog .el-dialog .topology-zoom-container{touch-action:none!important;cursor:grab!important;overflow:visible!important;width:100%;height:70vh!important;display:flex;justify-content:center;align-items:center;position:relative;background-color:#f3f3f3;border:2px dashed #ccc;border-radius:8px}.topology-dialog .el-dialog .topology-zoom-container:hover{border-color:#aaa}.topology-dialog .el-dialog .topology-zoom-container:before{content:"拖动区域";position:absolute;top:10px;left:50%;transform:translateX(-50%);background-color:hsla(0,0%,100%,.7);padding:3px 10px;border-radius:4px;font-size:12px;color:#606266;opacity:.7;pointer-events:none}.topology-dialog .el-dialog .topology-zoom-container:active:before{content:"正在拖动..."}.topology-dialog .el-overlay{opacity:.8}.topology-dialog .zoom-controls{position:relative;z-index:2003;margin-top:10px;text-align:center}.zoom-tips{font-size:.8em;color:#909399;margin-top:10px}.diagram-container{margin-top:10px;background-color:#f5f7fa;border:1px solid #dcdfe6;border-radius:4px;padding:15px;width:100%;max-width:600px;align-self:flex-start}.diagram-header{font-weight:700;font-size:14px;color:#303133;margin-bottom:12px}.diagram-content{max-height:300px;overflow-y:auto;background-color:#1e1e1e;border-radius:4px;padding:10px;margin-bottom:15px;position:relative}.diagram-actions{position:absolute;top:5px;right:5px;z-index:10;background-color:rgba(30,30,30,.7);border-radius:4px}.diagram-actions .el-button{color:#fff}.diagram-actions .el-button:hover{color:#409eff}.diagram-content pre{margin:0;white-space:pre-wrap}.diagram-content code{color:#d4d4d4;font-family:Courier New,Courier,monospace;font-size:12px}.chat-input-container{display:flex;flex-direction:column;align-items:center;margin-top:10px}.upload-preview{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:10px}.uploaded-file{position:relative;display:flex;flex-direction:column;align-items:center}.thumbnail-preview{width:100px;height:100px;-o-object-fit:cover;object-fit:cover;border-radius:4px;margin-bottom:5px}.delete-file{position:absolute;top:-5px;right:-5px;background-color:hsla(0,0%,100%,.8);border-radius:50%;width:20px;height:20px;justify-content:center;cursor:pointer;color:#f56c6c}.delete-file,.input-wrapper{display:flex;align-items:center}.input-wrapper{gap:10px}.input-wrapper .el-input{flex:1}.input-actions{display:flex;gap:10px}.input-actions .el-button{flex:1}.streaming-indicator{display:inline-flex;align-items:center;gap:5px;color:#909399;font-style:italic;font-size:12px;margin-top:5px}.streaming-icon{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.deploy-cloud[data-v-70c10602],.project-list[data-v-6878e50c]{padding:20px}.cloud-grid[data-v-70c10602]{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:20px;margin-top:20px}.cloud-card[data-v-70c10602]{transition:transform .3s;cursor:pointer}.cloud-card[data-v-70c10602]:hover{transform:translateY(-5px)}.cloud-logo[data-v-70c10602]{height:120px;display:flex;align-items:center;justify-content:center;padding:20px;background-color:#f5f7fa}.cloud-logo img[data-v-70c10602]{max-width:100%;max-height:80px;-o-object-fit:contain;object-fit:contain}.cloud-name[data-v-70c10602]{padding:10px;text-align:center;font-weight:700}.change-cloud[data-v-371937ab]{padding:20px}.cloud-grid[data-v-371937ab]{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:20px;margin-top:20px}.cloud-card[data-v-371937ab]{transition:transform .3s;cursor:pointer}.cloud-card[data-v-371937ab]:hover{transform:translateY(-5px)}.cloud-logo[data-v-371937ab]{height:120px;display:flex;align-items:center;justify-content:center;padding:20px;background-color:#f5f7fa}.cloud-logo img[data-v-371937ab]{max-width:100%;max-height:80px;-o-object-fit:contain;object-fit:contain}.cloud-name[data-v-371937ab]{padding:10px;text-align:center;font-weight:700}