#app{font-family:Avenir,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#2c3e50;height:100vh}.login-container[data-v-3f20d2c1]{display:flex;justify-content:center;align-items:center;height:100vh;background:linear-gradient(135deg,#81b2ff,#6495ed);position:relative;overflow:hidden}.login-container[data-v-3f20d2c1]:before{content:"";position:absolute;bottom:0;left:0;width:100%;height:200px;background:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1440 320"><path fill="%23ffffff" fill-opacity="0.3" d="M0,224L48,213.3C96,203,192,181,288,186.7C384,192,480,224,576,240C672,256,768,256,864,234.7C960,213,1056,171,1152,154.7C1248,139,1344,149,1392,154.7L1440,160L1440,320L1392,320C1344,320,1248,320,1152,320C1056,320,960,320,864,320C768,320,672,320,576,320C480,320,384,320,288,320C192,320,96,320,48,320L0,320Z"></path></svg>') bottom/cover no-repeat}.login-card[data-v-3f20d2c1]{display:flex;width:900px;height:500px;background-color:#fff;border-radius:20px;box-shadow:0 10px 30px rgba(0,0,0,.1);overflow:hidden;z-index:1}.login-left[data-v-3f20d2c1]{flex:1;display:flex;justify-content:center;align-items:center;background-color:#f0f4ff}.login-illustration[data-v-3f20d2c1]{max-width:80%;height:auto}.login-right[data-v-3f20d2c1]{flex:1;padding:60px;display:flex;flex-direction:column;justify-content:center}.login-header[data-v-3f20d2c1]{text-align:center;margin-bottom:40px}.login-header h1[data-v-3f20d2c1]{font-size:36px;font-weight:600;color:#303133;margin:0 0 10px}.login-header p[data-v-3f20d2c1]{font-size:16px;color:#909399}.login-form[data-v-3f20d2c1]{width:100%}.el-form-item[data-v-3f20d2c1]{margin-bottom:25px}.el-input__inner[data-v-3f20d2c1]{border-radius:8px;height:45px;line-height:45px}.login-button[data-v-3f20d2c1]{width:100%;height:45px;border-radius:8px;font-size:16px}.layout-container[data-v-b79928dc]{display:flex;flex-direction:column;height:100vh;overflow:hidden}.header[data-v-b79928dc]{display:flex;justify-content:space-between;align-items:center;height:60px;background-color:#fff;border-bottom:1px solid #e6e6e6;padding:0 20px}.header-left .logo[data-v-b79928dc]{font-size:20px;font-weight:700;color:#303133}.header-right .user-info[data-v-b79928dc]{cursor:pointer}.main-container[data-v-b79928dc]{display:flex;flex:1;overflow:hidden}.sidebar[data-v-b79928dc]{width:200px;background-color:#545c64;overflow-y:auto}.menu-icon[data-v-b79928dc]{width:16px;height:16px;margin-right:8px;vertical-align:middle}.content[data-v-b79928dc]{flex:1;background-color:#f5f7fa;overflow-y:auto}.home-container[data-v-28b8ef4c]{padding:20px;background-color:#f4f6f8}.box-card[data-v-28b8ef4c]{margin-bottom:20px;border-radius:8px;border:none}.clearfix[data-v-28b8ef4c]:after,.clearfix[data-v-28b8ef4c]:before{display:table;content:""}.clearfix[data-v-28b8ef4c]:after{clear:both}.card-header-flex[data-v-28b8ef4c]{display:flex;justify-content:space-between;align-items:center}.el-card__header[data-v-28b8ef4c]{font-weight:600}.real-time-stats-card .update-time[data-v-28b8ef4c]{float:right;font-size:12px;color:#909399;font-weight:400}.stats-grid[data-v-28b8ef4c]{display:grid;grid-template-columns:repeat(4,1fr);gap:32px}.stats-grid .grid-item[data-v-28b8ef4c]{background:#f9fafc;padding:10px;border-radius:5px}.stat-header[data-v-28b8ef4c]{display:flex;justify-content:space-between;align-items:center;margin-bottom:5px}.stat-title[data-v-28b8ef4c]{font-size:12px;color:#606266}.stat-yesterday[data-v-28b8ef4c]{font-size:12px;color:#909399}.stat-value[data-v-28b8ef4c]{font-size:22px;font-weight:700;margin:0 0 5px}.stat-comparison[data-v-28b8ef4c]{font-size:12px;color:#909399;margin:0}.stat-comparison .positive[data-v-28b8ef4c]{color:#f56c6c}.stat-comparison .negative[data-v-28b8ef4c]{color:#67c23a}.todo-grid[data-v-28b8ef4c]{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;text-align:center}.todo-value[data-v-28b8ef4c]{font-size:24px;font-weight:700;margin:0}.todo-title[data-v-28b8ef4c]{font-size:13px;color:#606266;margin:5px 0 0}.device-stats-card .el-card__body[data-v-28b8ef4c]{padding:10px 20px}.device-stats-container[data-v-28b8ef4c]{display:flex;justify-content:space-around;text-align:center}.device-stat-value[data-v-28b8ef4c]{font-size:28px;font-weight:700;margin:0;color:#409eff}.device-stat-title[data-v-28b8ef4c]{font-size:14px;color:#606266;margin:5px 0 0}.device-stat-item:nth-child(2) .device-stat-value[data-v-28b8ef4c]{color:#67c23a}.device-stat-item:nth-child(3) .device-stat-value[data-v-28b8ef4c]{color:#f56c6c}.functions-grid[data-v-28b8ef4c]{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.function-item[data-v-28b8ef4c]{text-align:center;cursor:pointer}.function-item[data-v-28b8ef4c]:hover{opacity:.8}.function-item img[data-v-28b8ef4c]{width:36px;height:36px;margin-bottom:8px}.function-item p[data-v-28b8ef4c]{font-size:13px;margin:0;color:#303133}.chart-card[data-v-28b8ef4c]{display:flex;flex-direction:column}.chart-card .el-card__body[data-v-28b8ef4c]{flex-grow:1;padding:10px}.chart[data-v-28b8ef4c]{width:100%;height:370px}.home-container>.el-row[data-v-28b8ef4c]{display:flex;flex-wrap:wrap}.home-container>.el-row>.el-col[data-v-28b8ef4c]{display:flex;flex-direction:column}.home-container .box-card[data-v-28b8ef4c]{display:flex;flex-direction:column;width:100%}.home-container .el-card__body[data-v-28b8ef4c],.home-container>.el-row:last-of-type>.el-col:first-of-type>.common-functions-card[data-v-28b8ef4c]{flex-grow:1}*{margin:0;padding:0;box-sizing:border-box}body,html{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:14px;line-height:1.5;color:#303133;background-color:#f5f7fa}#app,body,html{height:100%}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#f1f1f1}::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#a8a8a8}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.mt-10{margin-top:10px}.mt-20{margin-top:20px}.mb-10{margin-bottom:10px}.mb-20{margin-bottom:20px}.p-10{padding:10px}.p-20{padding:20px}