:root{--color-primary:#2eaeff;--color-primary-hover:#5fc2ff;--color-primary-light:#eef8ff;--color-success:#67c23a;--color-warning:#e6a23c;--color-danger:#f56c6c;--color-info:#909399;--color-bg-page:#e4ecf7;--color-bg-panel:#fff;--color-border:#e3e8f5;--color-border-strong:#dcdcdc;--color-text-primary:#333;--color-text-regular:#36435c;--color-text-secondary:#a3b0c9;--status-online:#67c23a;--status-offline:#909399;--status-error:#f56c6c;--status-upgrading:#e6a23c;--status-busy:#2eaeff;--status-disabled:#c0c4cc;--sidebar-width:169px;--sidebar-collapsed-width:66px;--header-height:64px;--content-padding:20px;--radius-control:3px;--radius-menu:6px;--radius-card:8px;--shadow-sidebar:1px 0 4px #404a5840;--shadow-card:0 1px 4px #404a5814;--shadow-popover:0 8px 24px #404a581f}*{box-sizing:border-box}html,body,#app{height:100%;color:var(--color-text-primary);margin:0;padding:0;font-family:PingFang SC,Source Han Sans CN,Microsoft YaHei,Arial,sans-serif}html{--el-color-primary:var(--color-primary);--el-color-primary-light-3:var(--color-primary-hover);--el-color-primary-light-9:var(--color-primary-light);--el-border-radius-base:var(--radius-control);--el-border-color:var(--color-border);--el-border-color-light:var(--color-border);--el-text-color-primary:var(--color-text-primary);--el-text-color-regular:var(--color-text-regular);--el-text-color-secondary:var(--color-text-secondary)}.page-container{min-height:0;padding:0 var(--content-padding) 12px;flex:1;height:100%;overflow:auto}.page-card,.el-card{background:var(--color-bg-panel);border:1px solid var(--color-border)!important;border-radius:var(--radius-card)!important;box-shadow:var(--shadow-card)!important}.page-card{padding:var(--content-padding)}.list-page-card{flex-direction:column!important;height:100%!important;min-height:0!important;display:flex!important;overflow:hidden!important}.list-page-card>:not(.table-fill){flex:none!important;height:auto!important;min-height:0!important}.list-page-card>.table-fill{flex:auto!important;min-height:0!important}.el-button{border-radius:var(--radius-control);font-weight:400}.el-button--default{border-color:var(--color-border-strong)}.el-button--primary{--el-button-bg-color:var(--color-primary);--el-button-border-color:var(--color-primary);--el-button-hover-bg-color:var(--color-primary-hover);--el-button-hover-border-color:var(--color-primary-hover)}.el-input__wrapper,.el-select__wrapper,.el-textarea__inner{border-radius:var(--radius-control)!important;box-shadow:0 0 0 1px var(--color-border) inset!important}.el-input__wrapper:hover,.el-select__wrapper:hover,.el-textarea__inner:hover{box-shadow:0 0 0 1px var(--color-primary) inset!important}.el-input__wrapper.is-focus,.el-select__wrapper.is-focused,.el-textarea__inner:focus{box-shadow:0 0 0 1px var(--color-primary) inset, 0 0 0 2px #d9efff!important}.el-table{--el-table-header-bg-color:#f7faff;--el-table-border-color:var(--color-border);--el-table-row-hover-bg-color:#f4f9ff;color:var(--color-text-regular)}.el-table th.el-table__cell{color:var(--color-text-secondary);font-weight:600}.status-dot{border-radius:50%;width:8px;height:8px;margin-right:6px;display:inline-block}@keyframes pulse{0%{box-shadow:0 0 #67c23a66}70%{box-shadow:0 0 0 6px #67c23a00}to{box-shadow:0 0 #67c23a00}}.status-dot.pulsing{animation:2s infinite pulse}.status-dot.online{background-color:var(--status-online)}.status-dot.offline{background-color:var(--status-offline)}.status-dot.error{background-color:var(--status-error)}.status-dot.upgrading{background-color:var(--status-upgrading)}.status-dot.busy{background-color:var(--status-busy)}.status-dot.disabled{background-color:var(--status-disabled)}.status-dot.assembled{background-color:var(--status-offline)}.status-dot.testing{background-color:var(--status-busy)}.status-dot.active{background-color:var(--status-online)}.status-dot.retired{background-color:var(--status-disabled)}.page-header{justify-content:space-between!important;align-items:center!important;gap:16px!important;margin-bottom:16px!important;display:flex!important}.page-title{color:var(--color-text-primary)!important;margin:0!important;font-size:16px!important;font-weight:600!important;line-height:22px!important}.page-subtitle{color:var(--color-text-secondary)!important;margin:6px 0 0!important;font-size:12px!important;line-height:17px!important}.filter-bar,.toolbar,.table-toolbar{border:1px solid var(--color-border)!important;border-radius:var(--radius-card)!important;background:#f8fbff!important;flex-wrap:wrap!important;align-items:center!important;gap:12px!important;margin-bottom:16px!important;padding:14px 16px!important;display:flex!important}.filter-bar .el-input,.filter-bar .el-select,.filter-bar .el-date-editor,.toolbar .el-input,.toolbar .el-select,.table-toolbar .el-input,.table-toolbar .el-select{--el-component-size:32px}.el-card__header{border-bottom:1px solid var(--color-border)!important;padding:16px 20px!important}.el-card__body{padding:20px!important}.el-table{border-radius:var(--radius-card);font-size:13px;overflow:hidden}.el-table .el-table__cell{padding:10px 0}.el-table .cell{line-height:20px}.el-table th.el-table__cell{height:44px;background:#f7faff!important}.el-table td.el-table__cell{border-bottom-color:var(--color-border)}.el-table .el-button+.el-button{margin-left:8px}.el-tag{border-radius:var(--radius-control)}.el-dialog,.el-drawer{border-radius:var(--radius-card);box-shadow:var(--shadow-popover)}.el-dialog__header,.el-drawer__header{border-bottom:1px solid var(--color-border);color:var(--color-text-primary);margin-bottom:0;padding:18px 20px 14px;font-weight:600}.el-dialog__body,.el-drawer__body{padding:20px}.el-dialog__footer,.el-drawer__footer{border-top:1px solid var(--color-border);padding:14px 20px}.el-form-item__label{color:var(--color-text-regular);font-weight:400}.el-descriptions__label{color:var(--color-text-secondary)!important;font-weight:400!important}.el-descriptions__content{color:var(--color-text-primary)!important}.el-pagination{justify-content:flex-end;margin-top:16px}.metric-card,.control-card,.org-card,.camera-card,.store-list,.info-card,.detail-card{border:1px solid var(--color-border)!important;border-radius:var(--radius-card)!important;background:var(--color-bg-panel)!important;box-shadow:var(--shadow-card)!important}.metric-card{transition:border-color .2s,box-shadow .2s,transform .2s}.metric-card:hover,.control-card:hover,.org-card:hover,.camera-card:hover{transform:translateY(-1px);border-color:#cfefff!important;box-shadow:0 8px 20px #2eaeff1a!important}.metric-card .el-card__body{min-height:124px;padding:24px 30px!important}.metric-value{color:var(--color-text-primary)!important;font-size:32px!important;font-weight:600!important;line-height:1!important}.metric-label{color:var(--color-text-regular)!important;margin-top:12px!important;font-size:14px!important;line-height:20px!important}.metric-change{color:var(--color-success)!important;margin-top:8px!important;font-size:12px!important;line-height:17px!important}.card-title{color:var(--color-text-primary)!important;font-size:16px!important;font-weight:600!important}.el-button.is-link,.el-button--primary.is-link{color:var(--color-primary);padding:0 2px}.el-table .el-button--small{border-radius:var(--radius-control);height:24px;padding:0 8px}.el-message-box,.el-alert{border-radius:var(--radius-card)!important}.el-tabs__item.is-active,.el-tabs__item:hover{color:var(--color-primary)!important}.el-tabs__active-bar{background-color:var(--color-primary)!important}.pagination,.el-pagination{color:var(--color-text-secondary)!important;justify-content:flex-end!important;align-items:center!important;gap:8px!important;margin-top:16px!important;padding:12px 0 0!important;font-size:13px!important;display:flex!important}.el-pagination .el-pagination__total,.el-pagination .el-pagination__sizes,.el-pagination .el-pagination__jump{color:var(--color-text-secondary)!important;margin-right:4px!important;font-size:13px!important;font-weight:400!important}.el-pagination .el-select{width:96px!important}.el-pagination .el-select .el-select__wrapper,.el-pagination .el-input__wrapper{border-radius:var(--radius-control)!important;height:32px!important;min-height:32px!important;box-shadow:0 0 0 1px var(--color-border) inset!important;background:#fff!important}.el-pagination .el-pagination__jump .el-input{width:56px!important;margin:0 6px!important}.el-pagination button,.el-pagination .el-pager li{transition:all .2s;border:1px solid var(--color-border)!important;border-radius:var(--radius-control)!important;min-width:32px!important;height:32px!important;color:var(--color-text-regular)!important;background:#fff!important;margin:0 2px!important;padding:0 8px!important;font-weight:400!important;line-height:30px!important}.el-pagination button:hover,.el-pagination .el-pager li:hover{border-color:var(--color-primary)!important;color:var(--color-primary)!important;background:var(--color-primary-light)!important}.el-pagination .el-pager li.is-active{border-color:var(--color-primary)!important;background:var(--color-primary)!important;color:#fff!important;font-weight:500!important}.el-pagination button:disabled,.el-pagination button.is-disabled{border-color:var(--color-border)!important;color:#c0c8d8!important;cursor:not-allowed!important;background:#f5f7fb!important}.el-pagination .btn-prev,.el-pagination .btn-next{justify-content:center!important;align-items:center!important;display:inline-flex!important}.app-sidebar[data-v-bb931a82]{--sidebar-active-color:var(--color-primary);--sidebar-text-color:var(--color-text-regular);--sidebar-muted-color:var(--color-text-secondary);box-shadow:var(--shadow-sidebar);background-color:#feffff;transition:width .3s;position:relative;overflow:hidden}.sidebar-logo[data-v-bb931a82]{border-bottom:1px solid #eef3fa;align-items:center;gap:8px;height:64px;padding:0 9px 0 12px;display:flex}.brand-mark[data-v-bb931a82]{object-fit:cover;border-radius:10px;flex:0 0 36px;width:36px;height:36px;box-shadow:0 8px 18px #2eaeff2e}.brand-copy[data-v-bb931a82]{flex-direction:column;flex:auto;justify-content:center;min-width:0;max-width:96px;line-height:1.2;display:flex;transform:translateY(1px)}.brand-title[data-v-bb931a82]{color:#1f2937;text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:13px;font-weight:700;line-height:17px;overflow:hidden}.brand-subtitle[data-v-bb931a82]{color:#8aa0bd;text-overflow:ellipsis;white-space:nowrap;max-width:100%;margin-top:1px;font-size:11px;line-height:15px;overflow:hidden}[data-v-bb931a82] .el-menu{background:0 0;border-right:none;padding:8px 7px 72px}[data-v-bb931a82] .el-menu--collapse{width:var(--sidebar-collapsed-width)}[data-v-bb931a82] .el-sub-menu__title,[data-v-bb931a82] .el-menu-item{border-radius:var(--radius-menu);height:48px;color:var(--sidebar-text-color);margin:2px 0;font-size:14px;line-height:48px}[data-v-bb931a82] .el-sub-menu__title:hover,[data-v-bb931a82] .el-menu-item:hover{background-color:var(--color-primary-light);color:var(--sidebar-active-color)}[data-v-bb931a82] .el-menu-item.is-active{background-color:var(--sidebar-active-color);color:#fff;font-weight:600}[data-v-bb931a82] .el-menu-item.is-active .el-icon{color:#fff}[data-v-bb931a82] .el-icon{color:inherit}[data-v-bb931a82] .el-sub-menu .el-menu{padding:0}[data-v-bb931a82] .el-sub-menu .el-menu-item{min-width:0;padding-left:38px!important}[data-v-bb931a82] .el-menu--collapse .el-sub-menu__title,[data-v-bb931a82] .el-menu--collapse .el-menu-item{justify-content:center;padding:0!important}.sidebar-collapse-btn[data-v-bb931a82]{color:#1f2937;cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;width:30px;height:30px;font-size:20px;transition:background .2s,color .2s,border-color .2s;display:inline-flex;position:absolute;bottom:14px;right:10px}.sidebar-collapse-btn[data-v-bb931a82]:hover{color:var(--color-primary);background:#eef6ff}.app-page-tabs[data-v-b10b824e]{flex:0 0 52px;height:52px;min-height:52px;overflow:hidden}.app-layout[data-v-6a04096d]{min-width:0;height:100vh;min-height:0;overflow:hidden}.app-content-shell[data-v-6a04096d]{flex:1;min-width:0;height:100%;min-height:0;overflow:hidden}.app-main[data-v-6a04096d]{background-color:var(--color-bg-page);flex-direction:column;flex:1;min-height:0;padding:0;display:flex;overflow:auto}.app-main[data-v-6a04096d]>*{flex:1;min-height:0}
