.login-container[data-v-691a6946]{background-image:url(/assets/png/login_bg2.B-NlwjZ4.mub5xrvj.png);background-position:50%;background-size:cover;justify-content:center;align-items:center;min-height:100vh;display:flex;position:relative}.client-link[data-v-691a6946]{position:absolute;top:20px;right:20px}.client-link a[data-v-691a6946]{color:#409eff;font-size:14px;text-decoration:none}.client-link a[data-v-691a6946]:hover{text-decoration:underline}.login-wrapper[data-v-691a6946]{background:#fff;border-radius:8px;width:100%;max-width:800px;display:flex;overflow:hidden;box-shadow:0 2px 12px #0000001a}.login-left[data-v-691a6946]{flex:1;justify-content:center;align-items:center;padding:20px;display:flex}.login-image[data-v-691a6946]{border-radius:4px;width:100%;height:auto}.login-form-wrapper[data-v-691a6946]{flex:1;padding:40px}.login-title[data-v-691a6946]{text-align:center;color:#303133;margin-bottom:30px;font-size:24px;font-weight:600}.remember-forgot[data-v-691a6946]{justify-content:space-between;align-items:center;margin-bottom:20px;font-size:14px;display:flex}.login-actions[data-v-691a6946]{margin-top:20px}.login-btn[data-v-691a6946]{width:100%}[data-v-691a6946] .el-input__wrapper{transition:all .3s;box-shadow:inset 0 0 0 1px #0000000d!important}[data-v-691a6946] .el-input__wrapper:focus-within{box-shadow:inset 0 0 0 1px #409eff!important}.layout-container[data-v-3f8beccb]{flex-direction:column;width:100vw;height:100vh;display:flex;overflow:hidden}.layout-main[data-v-3f8beccb]{flex:1;width:100%;height:100vh;display:flex;overflow:hidden}.sidebar[data-v-3f8beccb]{color:#fff;background-color:#2c3e50;flex-direction:column;height:100vh;min-height:100vh;transition:width .3s;display:flex}.logo[data-v-3f8beccb]{text-align:center;box-sizing:border-box;border-bottom:1px solid #34495e;flex-shrink:0;height:60px;padding:20px;font-size:18px;font-weight:700}.menu[data-v-3f8beccb]{background-color:#0000;border-right:none;flex:1;height:calc(100vh - 60px);overflow-y:auto}.menu[data-v-3f8beccb] .el-menu-item{color:#ecf0f1;background-color:#0000;height:56px;line-height:56px}.menu[data-v-3f8beccb] .el-menu-item.is-active{color:#fff;background-color:#3498db}.main-content[data-v-3f8beccb]{background-color:#f5f7fa;flex-direction:column;flex:1;height:100vh;min-height:100vh;display:flex;overflow:hidden}.header[data-v-3f8beccb]{background-color:#fff;flex-shrink:0;justify-content:space-between;align-items:center;height:60px;padding:0 20px;display:flex;box-shadow:0 2px 4px #0000001a}.header-left[data-v-3f8beccb]{align-items:center;display:flex}.header-right[data-v-3f8beccb]{align-items:center;gap:15px;display:flex}.user-info[data-v-3f8beccb]{color:#666;font-size:14px}.content[data-v-3f8beccb]{flex:1;height:calc(100vh - 60px);padding:20px;overflow-y:auto}.toggle-btn[data-v-3f8beccb]{margin-right:10px}.dashboard-container[data-v-eee141ca]{height:100%}.dashboard-header[data-v-eee141ca]{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.dashboard-header h2[data-v-eee141ca]{color:#303133;margin:0}.dashboard-header[data-v-eee141ca] .el-date-editor.date-picker{--el-date-editor-width:300px;flex:none}.data-cards[data-v-eee141ca]{grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:20px;display:grid}.data-card[data-v-eee141ca]{height:120px}.data-card-content[data-v-eee141ca]{justify-content:space-between;align-items:center;height:100%;display:flex}.data-info[data-v-eee141ca]{flex:1}.data-number[data-v-eee141ca]{color:#303133;font-size:28px;font-weight:700}.data-label[data-v-eee141ca]{color:#606266;margin-top:5px;font-size:14px}.data-icon[data-v-eee141ca]{color:#409eff;background-color:#f0f2f5;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.charts-container[data-v-eee141ca]{grid-template-columns:repeat(2,1fr);gap:20px;display:grid}.chart-card[data-v-eee141ca]{height:350px}.chart[data-v-eee141ca]{width:100%;height:300px}.card-header[data-v-eee141ca]{justify-content:space-between;align-items:center;display:flex}@media screen and (max-width:1200px){.charts-container[data-v-eee141ca]{grid-template-columns:1fr}}@media screen and (max-width:768px){.data-cards[data-v-eee141ca]{grid-template-columns:1fr}}.customers-container[data-v-0f9258cb]{background-color:#f5f7fa;height:100%;padding:20px;overflow-y:auto}.page-header[data-v-0f9258cb]{justify-content:flex-end;align-items:center;margin-bottom:20px;display:flex}.page-header h1[data-v-0f9258cb]{color:#304156;margin:0}.search-card[data-v-0f9258cb]{border-radius:8px;margin-bottom:20px}.table-card[data-v-0f9258cb]{border-radius:8px;overflow:hidden}.pagination-container[data-v-0f9258cb]{justify-content:flex-end;margin-top:20px;display:flex}.dialog-footer[data-v-0f9258cb]{text-align:right}.action-buttons[data-v-0f9258cb]{justify-content:space-between;align-items:center;width:100%;height:100%;display:flex}.feature-cell__tag[data-v-0f9258cb]{max-width:100%;margin:2px}.feature-cell__empty[data-v-0f9258cb]{color:#c0c4cc}.batch-bar[data-v-0f9258cb]{background:#ecf5ff;border:1px solid #d9ecff;border-radius:8px;align-items:center;gap:16px;margin-top:16px;padding:10px 16px;display:flex}.batch-bar__text[data-v-0f9258cb]{color:#606266;font-size:13px}.batch-bar__text b[data-v-0f9258cb]{color:#409eff;margin:0 2px}.feature-panel[data-v-0f9258cb]{background:#fafcff;border:1px solid #ebeef5;border-radius:8px;width:100%;padding:12px 16px}.feature-panel__templates[data-v-0f9258cb]{border-bottom:1px dashed #e4e7ed;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px;padding-bottom:10px;display:flex}.feature-panel__hint[data-v-0f9258cb]{color:#909399;font-size:12px}.feature-panel__hint--block[data-v-0f9258cb]{margin-top:10px;line-height:1.6;display:block}.feature-panel__item[data-v-0f9258cb]{align-items:flex-start;height:auto;margin-bottom:8px;margin-right:0;display:flex}.feature-panel__item[data-v-0f9258cb] .el-checkbox__label{white-space:normal;flex-direction:column;line-height:1.5;display:flex}.feature-panel__label[data-v-0f9258cb]{color:#303133;font-size:13px}.feature-panel__desc[data-v-0f9258cb]{color:#909399;font-size:12px}.batch-dialog__alert[data-v-0f9258cb]{margin-bottom:14px}.batch-dialog__names[data-v-0f9258cb]{color:#909399;max-height:60px;margin-top:4px;font-size:12px;line-height:1.6;overflow-y:auto}.batch-dialog__templates[data-v-0f9258cb]{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:14px;display:flex}.batch-dialog__row[data-v-0f9258cb]{justify-content:space-between;align-items:center;padding:6px 0;display:flex}.batch-dialog__rowlabel[data-v-0f9258cb]{color:#303133;font-size:13px}.action-buttons .el-button[data-v-0f9258cb]{text-align:center;flex:1}.devices-container[data-v-083450cb]{background-color:#f5f7fa;height:100%;padding:20px;overflow-y:auto}.page-header[data-v-083450cb]{justify-content:flex-end;align-items:center;margin-bottom:20px;display:flex}.page-header h1[data-v-083450cb]{color:#304156;margin:0}.search-card[data-v-083450cb]{border-radius:8px;margin-bottom:20px}.table-card[data-v-083450cb]{border-radius:8px;overflow:hidden}.pagination-container[data-v-083450cb]{justify-content:flex-end;margin-top:20px;display:flex}.dialog-footer[data-v-083450cb]{text-align:right}.action-buttons[data-v-083450cb]{justify-content:space-between;align-items:center;width:100%;height:100%;display:flex}.action-buttons .el-button[data-v-083450cb]{text-align:center;flex:1}.login-container[data-v-d5c27adf]{background-image:url(/assets/png/login_bg2.B-NlwjZ4.mub5xrvj.png);background-position:50%;background-size:cover;justify-content:center;align-items:center;min-height:100vh;display:flex;position:relative}.login-wrapper[data-v-d5c27adf]{background:#fff;border-radius:8px;width:100%;max-width:800px;display:flex;overflow:hidden;box-shadow:0 2px 12px #0000001a}.login-left[data-v-d5c27adf]{flex:1;justify-content:center;align-items:center;padding:20px;display:flex}.login-image[data-v-d5c27adf]{border-radius:4px;width:100%;height:auto}.login-form-wrapper[data-v-d5c27adf]{flex:1;padding:40px}.login-title[data-v-d5c27adf]{text-align:center;color:#303133;margin-bottom:30px;font-size:24px;font-weight:600}.remember-forgot[data-v-d5c27adf]{justify-content:space-between;align-items:center;margin-bottom:20px;font-size:14px;display:flex}.login-actions[data-v-d5c27adf]{margin-top:20px}.login-btn[data-v-d5c27adf]{width:100%}[data-v-d5c27adf] .el-input__wrapper{transition:all .3s;box-shadow:inset 0 0 0 1px #0000000d!important}[data-v-d5c27adf] .el-input__wrapper:focus-within{box-shadow:inset 0 0 0 1px #409eff!important}.client-layout[data-v-eb1e5568]{width:100%;height:100vh;overflow:hidden}.client-container[data-v-eb1e5568]{width:100%;height:100vh;display:flex;overflow:hidden}.client-sidebar[data-v-eb1e5568]{background:linear-gradient(#667eea 0%,#764ba2 30%,#5a2d6e 60%,#3d1f5c 100%);flex-direction:column;flex-shrink:0;width:200px;height:100vh;transition:all .3s;display:flex;box-shadow:2px 0 15px #0003}.client-sidebar[data-v-eb1e5568]:hover{box-shadow:2px 0 20px #667eea4d}.sidebar-logo[data-v-eb1e5568]{text-align:center;color:#fff;box-sizing:border-box;background:#ffffff1a;border-bottom:1px solid #ffffff26;justify-content:center;align-items:center;height:60px;padding:20px;font-size:16px;font-weight:700;transition:all .3s;display:flex}.sidebar-logo[data-v-eb1e5568]:hover{background:#ffffff26}.client-menu[data-v-eb1e5568]{flex:1;overflow-y:auto;background:0 0!important;border-right:none!important}.client-menu[data-v-eb1e5568] .el-menu{background:0 0!important;border-right:none!important}.client-menu[data-v-eb1e5568] .el-menu-item,.client-menu[data-v-eb1e5568] .el-sub-menu__title{color:#ffffffe6!important;border-bottom:none!important;border-radius:8px!important;height:48px!important;margin:4px 8px!important;padding-left:20px!important;line-height:48px!important;transition:all .3s!important}.client-menu[data-v-eb1e5568] .el-menu-item:hover,.client-menu[data-v-eb1e5568] .el-sub-menu__title:hover{color:#fff!important;background:#ffffff26!important;padding-left:25px!important}.client-menu[data-v-eb1e5568] .el-menu-item.is-active,.client-menu[data-v-eb1e5568] .el-sub-menu.is-active>.el-sub-menu__title{box-shadow:0 4px 12px #0003;color:#fff!important;background:#ffffff40!important;padding-left:25px!important}.client-menu[data-v-eb1e5568] .el-sub-menu .el-menu-item{height:42px!important;padding-left:45px!important;line-height:42px!important}.client-menu[data-v-eb1e5568] .el-sub-menu .el-menu-item:hover,.client-menu[data-v-eb1e5568] .el-sub-menu .el-menu-item.is-active{padding-left:50px!important}.client-menu[data-v-eb1e5568]::-webkit-scrollbar{width:5px}.client-menu[data-v-eb1e5568]::-webkit-scrollbar-track{background:#ffffff0d}.client-menu[data-v-eb1e5568]::-webkit-scrollbar-thumb{background:#fff3;border-radius:3px}.client-menu[data-v-eb1e5568]::-webkit-scrollbar-thumb:hover{background:#ffffff4d}.client-main-container[data-v-eb1e5568]{flex-direction:column;flex:1;min-width:0;height:100vh;display:flex}.page-header[data-v-eb1e5568]{box-sizing:border-box;background:linear-gradient(90deg,#667eea 0%,#764ba2 100%);border-bottom:none;flex-shrink:0;width:100%;height:56px}.header-content[data-v-eb1e5568]{box-sizing:border-box;justify-content:space-between;align-items:center;width:100%;height:100%;padding:0 15px;display:flex}.page-header h1[data-v-eb1e5568]{color:#fff;margin:0;font-size:18px;font-weight:700}.user-info[data-v-eb1e5568]{color:#fff;align-items:center;gap:15px;display:flex}.logout-link[data-v-eb1e5568]{color:#ffffffd9;cursor:pointer;text-decoration:none}.logout-link[data-v-eb1e5568]:hover{color:#fff;text-decoration:underline}.client-main[data-v-eb1e5568]{background:#f3f4f6;flex:1;min-width:0;padding:12px;font-family:PingFang SC,Microsoft YaHei,sans-serif;line-height:1.5;overflow:auto}.client-main .el-card[data-v-eb1e5568]{border-radius:8px;transition:all .3s;box-shadow:0 2px 8px #00000014}.client-main .el-card[data-v-eb1e5568]:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001f}.client-main .el-button--primary[data-v-eb1e5568]{background-color:#0ea5e9;border-color:#0ea5e9}.client-main .el-button--primary[data-v-eb1e5568]:hover{background-color:#0284c7;border-color:#0284c7;transform:translateY(-1px);box-shadow:0 2px 8px #0ea5e94d}.client-main .el-tag[data-v-eb1e5568]{color:#0ea5e9;background-color:#0ea5e91a;border:1px solid #0ea5e9}.client-main .el-table[data-v-eb1e5568]{border-radius:8px;overflow:hidden;box-shadow:0 2px 8px #00000014}.client-main .el-table__row[data-v-eb1e5568]:hover{background-color:#0ea5e90d;border-left:3px solid #0ea5e9}.client-main .el-form[data-v-eb1e5568]{background:#fff;border-radius:8px;padding:20px;box-shadow:0 2px 8px #00000014}.client-main .el-input__wrapper[data-v-eb1e5568]{border-radius:6px}.client-main .el-input__wrapper.is-focus[data-v-eb1e5568]{box-shadow:inset 0 0 0 1px #0ea5e9}.app-page__head--gradient[data-v-d7814f1d]{padding:var(--sp-5)var(--sp-6);border-radius:var(--radius-lg);background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border:none;align-items:center;box-shadow:0 6px 18px #667eea47}.app-page__head--gradient .app-page__title[data-v-d7814f1d]{color:#fff}.app-page__head--gradient .app-page__desc[data-v-d7814f1d]{color:#ffffffd9}.app-page__head--gradient[data-v-d7814f1d] .el-button{color:#fff;background:#ffffff29;border-color:#ffffff80}.app-page__head--gradient[data-v-d7814f1d] .el-button:hover,.app-page__head--gradient[data-v-d7814f1d] .el-button:focus{color:#fff;background:#ffffff47;border-color:#fff}.app-page__head-main[data-v-d7814f1d]{min-width:0}@media (max-width:768px){.app-page__head--gradient[data-v-d7814f1d]{align-items:flex-start;gap:var(--sp-3);flex-direction:column}}.promo-form[data-v-73b38cd4]{align-items:flex-start;gap:var(--sp-5);flex-wrap:wrap;display:flex}.promo-field[data-v-73b38cd4]{gap:var(--sp-2);flex-direction:column;min-width:0;display:flex}.promo-field__label[data-v-73b38cd4]{align-items:center;gap:var(--sp-1);min-height:calc(var(--fs-sm)*var(--lh-tight));font-size:var(--fs-sm);color:var(--text-2);line-height:var(--lh-tight);display:flex}.promo-field__required[data-v-73b38cd4]{color:var(--c-danger);line-height:1}.promo-field[data-v-73b38cd4] .el-select,.promo-field[data-v-73b38cd4] .el-input{width:220px}.promo-panel[data-v-73b38cd4]{min-width:0}.promo-panel__body[data-v-73b38cd4]{height:clamp(380px,100vh - 400px,900px)}.floor-switch[data-v-73b38cd4]{gap:var(--sp-1);margin-bottom:var(--sp-3);flex-wrap:wrap;display:flex}.floor-switch[data-v-73b38cd4] .el-radio-button__inner{border-radius:var(--radius-sm);border-left:1px solid var(--border-1)}.promo-marker-list[data-v-73b38cd4]{gap:var(--sp-2);flex-direction:column;display:flex}.promo-marker[data-v-73b38cd4]{justify-content:space-between;align-items:center;gap:var(--sp-2);padding:var(--sp-2)var(--sp-3);border:1px solid var(--border-1);border-radius:var(--radius-sm);transition:border-color var(--dur-fast)var(--ease),background-color var(--dur-fast)var(--ease);display:flex}.promo-marker[data-v-73b38cd4]:hover{border-color:var(--c-brand-300);background:var(--bg-subtle)}.promo-marker--added[data-v-73b38cd4]{border-color:var(--c-success);background:var(--c-success-soft)}.promo-marker__info[data-v-73b38cd4]{align-items:center;gap:var(--sp-2);min-width:0;display:flex}.promo-marker__name[data-v-73b38cd4]{font-size:var(--fs-sm);color:var(--text-1)}.promo-path[data-v-73b38cd4]{gap:var(--sp-4);flex-direction:column;display:flex}.promo-point[data-v-73b38cd4]{border:1px solid var(--border-1);border-radius:var(--radius-md);padding:var(--sp-4);transition:border-color var(--dur-base)var(--ease),box-shadow var(--dur-base)var(--ease)}.promo-point[data-v-73b38cd4]:hover{border-color:var(--c-brand-300);box-shadow:var(--shadow-md)}.promo-point--new[data-v-73b38cd4]{border-color:var(--c-brand-400);box-shadow:var(--shadow-md);animation:promo-point-flash-73b38cd4 1.6s var(--ease)}@keyframes promo-point-flash-73b38cd4{0%{background:var(--c-brand-50)}to{background:0 0}}@media (prefers-reduced-motion:reduce){.promo-point--new[data-v-73b38cd4]{animation:none}}.promo-point__head[data-v-73b38cd4]{align-items:center;gap:var(--sp-2);min-width:0;display:flex}.promo-point__index[data-v-73b38cd4]{border-radius:var(--radius-full);background:var(--c-brand-500);color:#fff;width:22px;height:22px;font-size:var(--fs-xs);font-weight:var(--fw-semibold);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.promo-point__name[data-v-73b38cd4]{font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--text-1);min-width:0}.promo-point__actions[data-v-73b38cd4]{align-items:center;gap:var(--sp-1);flex-shrink:0;margin-left:auto;display:flex}.promo-point__body[data-v-73b38cd4]{gap:var(--sp-4);margin-top:var(--sp-3);flex-direction:column;display:flex}.promo-row[data-v-73b38cd4]{gap:var(--sp-2);flex-direction:column;min-width:0;display:flex}.promo-row__label[data-v-73b38cd4]{align-items:center;gap:var(--sp-1);font-size:var(--fs-sm);color:var(--text-2);line-height:var(--lh-tight);display:flex}.label-optional[data-v-73b38cd4]{font-size:var(--fs-xs);color:var(--text-3)}.media-content[data-v-73b38cd4]{margin-top:var(--sp-1)}.upload-area[data-v-73b38cd4]{--el-upload-picture-card-size:104px;--el-upload-list-picture-card-size:104px}.upload-area[data-v-73b38cd4] .el-upload--picture-card{border-radius:var(--radius-sm);border:1px dashed var(--border-1);background:var(--bg-subtle);width:104px!important;height:104px!important}.upload-area[data-v-73b38cd4] .el-upload--picture-card:hover{border-color:var(--c-brand-400);color:var(--c-brand-500)}.upload-area[data-v-73b38cd4] .el-upload-list--picture-card .el-upload-list__item{border-radius:var(--radius-sm);margin:0 var(--sp-2)var(--sp-2)0;width:104px!important;height:104px!important}.upload-area[data-v-73b38cd4] .el-upload-list--picture-card .el-upload-list__item-thumbnail{object-fit:cover;width:100%;height:100%}.upload-trigger[data-v-73b38cd4]{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:0 4px;display:flex}.upload-icon[data-v-73b38cd4]{color:var(--text-3);font-size:20px}.upload-text[data-v-73b38cd4]{font-size:var(--fs-xs);color:var(--text-2);line-height:1.3}.video-preview-in-upload[data-v-73b38cd4]{object-fit:cover;border-radius:var(--radius-sm);width:100%;height:100%}.config-columns[data-v-73b38cd4]{gap:var(--sp-4);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.config-column[data-v-73b38cd4]{min-width:0}.config-label[data-v-73b38cd4]{flex-direction:column;display:flex}.form-hint[data-v-73b38cd4]{font-size:var(--fs-xs);color:var(--text-3);line-height:var(--lh-tight)}.md3-form-item[data-v-73b38cd4]{margin-bottom:var(--sp-4)}.md3-footer[data-v-73b38cd4]{justify-content:flex-end;gap:var(--sp-2);display:flex}@media (max-width:768px){.config-columns[data-v-73b38cd4]{grid-template-columns:1fr}.promo-field[data-v-73b38cd4] .el-select,.promo-field[data-v-73b38cd4] .el-input{width:100%}}
