:root{--dh-primary:#007aff;--dh-primary-hover:#0064d2;--dh-primary-soft:#eaf3ff;--dh-primary-faint:#f4f8ff;--dh-action:#1768d5;--dh-action-hover:#1058b8;--dh-ink:#24262c;--dh-success:#187348;--dh-success-soft:#eaf7ef;--dh-warning:#90600d;--dh-warning-soft:#fff5df;--dh-danger:#bd4149;--dh-danger-soft:#fcf0f1;--dh-info:#646975;--dh-bg:#f6f7f9;--dh-sidebar-bg:#eff0f3;--dh-surface:#fff;--dh-surface-muted:#f7f8fa;--dh-text:#272a31;--dh-text-secondary:#5f6572;--dh-text-muted:#666d78;--dh-border:#e2e5ea;--dh-border-strong:#cdd1d9;--dh-shadow-sm:0 1px 2px rgba(24,28,36,.025);--dh-shadow-md:0 16px 48px rgba(24,28,36,.14);--dh-radius-sm:9px;--dh-radius-md:12px;--dh-radius-lg:14px;--dh-radius-xl:18px;--dh-content-max:none;--dh-sidebar-compact:76px;--dh-sidebar-wide:224px;--dh-font:-apple-system,BlinkMacSystemFont,"SF Pro Text","PingFang SC","Microsoft YaHei","Helvetica Neue",Arial,sans-serif}*{box-sizing:border-box}#app,body,html{min-width:0;min-height:100%;margin:0}body{color:var(--dh-text);background:var(--dh-bg);font:14px/1.5 var(--dh-font);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}button,input,select,textarea{font:inherit}a,button,input,select,textarea{-webkit-tap-highlight-color:transparent}a{color:var(--dh-primary-hover)}input[type=checkbox],input[type=radio]{accent-color:var(--dh-primary)}::-moz-selection{color:var(--dh-text);background:#dce9ff}::selection{color:var(--dh-text);background:#dce9ff}:focus-visible{outline:2px solid var(--dh-primary);outline-offset:3px}button{cursor:pointer}.el-button.is-disabled,button:disabled{cursor:not-allowed!important;opacity:.62;transform:none!important}.alert-config-page,.article-detail-page,.article-edit-page,.article-manage-page,.dashboard,.device-detail,.device-list-container,.devices-page,.doc-list-page,.feature-manage,.file-storage,.file-storage-container,.overview-container,.page-shell,.proxy-monitor,.public-data-page,.role-manage,.task-create,.task-manage,.task-sub-list,.user-manage{width:100%;max-width:var(--dh-content-max);min-width:0;margin:0 auto;color:var(--dh-text)}.article-edit-page,.article-manage-page,.device-detail,.doc-list-page,.feature-manage,.proxy-monitor,.task-create,.task-manage,.task-sub-list{min-height:auto;padding:0;background:transparent}.app-main>.el-container,.devices-page,.public-data-page{display:block;width:100%;min-width:0;padding:0}.article-table-container,.content-panel,.el-card,.feature-manage-card,.task-info-card{border:1px solid var(--dh-border);border-radius:var(--dh-radius-lg);background:var(--dh-surface);box-shadow:var(--dh-shadow-sm)}.el-card__header{padding:18px 20px;border-bottom:1px solid var(--dh-border);background:var(--dh-surface)}.el-card__body{padding:20px}.el-card.is-always-shadow,.el-card.is-hover-shadow:hover{box-shadow:var(--dh-shadow-sm)}.feature-manage-card{width:100%;min-width:0;max-width:none;padding:20px}.feature-manage-card.el-card{padding:0}.actions-bar,.feature-manage-header,.operation-bar,.search-bar:not(.el-input),.sub-task-header,.table-toolbar,.task-create-header{min-height:64px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin:0 0 16px;padding:12px 16px;border:1px solid var(--dh-border);border-radius:var(--dh-radius-lg);background:var(--dh-surface);box-shadow:none}.feature-manage-card .feature-manage-header,.feature-manage-card .sub-task-header{min-height:48px;margin:0 0 18px;padding:0 0 18px;border:0;border-bottom:1px solid var(--dh-border);border-radius:0}.feature-manage-header .search-input,.task-create-header .search-input{width:min(360px,100%);flex:0 1 360px}.feature-manage-header .actions,.file-table-actions,.form-actions,.role-actions,.row-actions,.task-operations,.user-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.feature-manage-header .actions{margin-left:auto}.actions .el-button+.el-button,.row-actions .el-button+.el-button,.task-operations .el-button+.el-button{margin-left:0}.page-header{margin:0 0 24px;padding:0;border:0;background:transparent;box-shadow:none}.article-title,.edit-page-title,.page-header h1{color:var(--dh-text);font-family:var(--dh-font);letter-spacing:-.025em}.page-header h1{margin:0;font-size:28px;font-weight:650}.article-meta,.device-subtitle,.page-meta,.secondary-text,.time{color:var(--dh-text-secondary)}.action-button,.create-button,.edit-btn,.el-button,.page-button,.pagination-btn,.primary-btn,.role-action,.save-button,.search-button,.secondary-btn,.share-button{min-height:38px;padding:9px 15px;border:1px solid var(--dh-border-strong);border-radius:var(--dh-radius-sm);color:var(--dh-text);background:var(--dh-surface);box-shadow:none;font-family:var(--dh-font);font-size:13px;font-weight:550;line-height:18px;text-decoration:none;white-space:nowrap;transition:color .16s ease,border-color .16s ease,background-color .16s ease}.action-button,.create-button,.edit-btn,.page-button,.pagination-btn,.primary-btn,.role-action,.save-button,.search-button,.secondary-btn,.share-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;cursor:pointer}.action-button:hover,.edit-btn:hover,.el-button:focus-visible,.el-button:hover,.page-button:not(:disabled):hover,.pagination-btn:not(:disabled):hover,.role-action:hover,.search-button:hover,.secondary-btn:hover,.share-button:hover{color:var(--dh-ink);border-color:#aeb4bf;background:var(--dh-surface-muted)}.create-button,.el-button--primary,.file-primary-button.el-button,.primary-btn,.save-button{color:#fff!important;border-color:var(--dh-action)!important;background:var(--dh-action)!important}.create-button:hover,.el-button--primary:focus-visible,.el-button--primary:hover,.file-primary-button.el-button:hover,.primary-btn:hover,.save-button:hover{color:#fff!important;border-color:var(--dh-action-hover)!important;background:var(--dh-action-hover)!important}.edit-btn.success,.el-button--success{color:var(--dh-success);border-color:#cfe1d5;background:var(--dh-success-soft)}.el-button--warning{color:var(--dh-warning);border-color:#e7dbc4;background:var(--dh-warning-soft)}.el-button--info{color:var(--dh-text-secondary);border-color:var(--dh-border-strong);background:var(--dh-surface-muted)}.danger-btn,.danger-text-btn,.delete-btn,.delete-button,.edit-btn.danger,.el-button--danger,.file-row-action-danger.el-button,.role-action-danger{color:var(--dh-danger)!important;border-color:#efd4d6!important;background:var(--dh-danger-soft)!important}.danger-btn:hover,.danger-text-btn:hover,.delete-btn:hover,.delete-button:hover,.edit-btn.danger:hover,.el-button--danger:hover,.file-row-action-danger.el-button:hover,.role-action-danger:hover{color:#a72d37!important;border-color:#ddaeb3!important;background:#f9e5e7!important}.el-button--text{min-height:30px;padding:5px 8px;background:transparent}.el-button--text,.el-button--text:hover{color:var(--dh-primary-hover);border-color:transparent}.el-button--text:hover{background:var(--dh-primary-soft)}.el-button--small{min-height:34px;padding:7px 12px}.el-button--mini{min-height:30px;padding:5px 10px;font-size:12px}.el-button.is-circle{min-width:34px;min-height:34px;padding:8px;border-radius:10px}.el-button.is-round{border-radius:var(--dh-radius-sm)}.action-button,.edit-btn,.el-table .el-button:not(.is-circle),.role-action{min-height:30px;padding:5px 10px;font-size:12px;line-height:18px}.el-table .el-button--text:not(.delete-btn):not(.danger-text-btn){color:var(--dh-text);border-color:var(--dh-border);background:var(--dh-surface)}.el-table .el-button--text:not(.delete-btn):not(.danger-text-btn):hover{border-color:var(--dh-border-strong);background:var(--dh-surface-muted)}.action-button i,.el-button i{color:inherit}.el-button.is-disabled,.el-button.is-disabled:focus,.el-button.is-disabled:hover{color:var(--dh-text-muted)!important;border-color:var(--dh-border)!important;background:var(--dh-surface-muted)!important}.el-link.el-link--default{color:var(--dh-text-secondary)}.el-link.el-link--default:hover{color:var(--dh-primary-hover)}.dialog-input,.dialog-select,.el-input__inner,.el-textarea__inner,.form-input,.form-textarea,.pagination-select,input.search-input{color:var(--dh-text);border:1px solid var(--dh-border-strong);border-radius:var(--dh-radius-sm);background:var(--dh-surface);font-size:13px;box-shadow:none;transition:border-color .16s ease,box-shadow .16s ease}.el-input__inner{height:40px;line-height:40px}.el-input__icon{line-height:40px}.el-textarea__inner{padding:10px 12px;line-height:1.6}.dialog-input,.dialog-select,.form-input,.form-textarea,.pagination-select,input.search-input{min-height:40px;padding:9px 12px;outline:none}.el-input__inner::-moz-placeholder,.el-textarea__inner::-moz-placeholder,input::-moz-placeholder,textarea::-moz-placeholder{color:var(--dh-text-muted);opacity:1}.el-input__inner::placeholder,.el-textarea__inner::placeholder,input::placeholder,textarea::placeholder{color:var(--dh-text-muted);opacity:1}.el-input__inner:hover,.el-textarea__inner:hover{border-color:#aeb4bf}.dialog-input:focus,.dialog-select:focus,.el-input__inner:focus,.el-select .el-input.is-focus .el-input__inner,.el-textarea__inner:focus,.form-input:focus,.form-textarea:focus,input.search-input:focus{border-color:var(--dh-primary);box-shadow:0 0 0 3px rgba(0,122,255,.12);outline:none}.el-input.search-bar,.el-input.search-input{padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}.el-input-group__append,.el-input-group__prepend{color:var(--dh-text-secondary);border-color:var(--dh-border-strong);background:var(--dh-surface-muted)}.el-input-group--append .el-input__inner{border-radius:var(--dh-radius-sm) 0 0 var(--dh-radius-sm)}.el-input-group--prepend .el-input__inner{border-radius:0 var(--dh-radius-sm) var(--dh-radius-sm) 0}.el-form-item{margin-bottom:20px}.el-form-item__label{color:var(--dh-text-secondary);font-size:13px;font-weight:500}.el-checkbox__input.is-checked .el-checkbox__inner,.el-checkbox__input.is-indeterminate .el-checkbox__inner,.el-radio__input.is-checked .el-radio__inner{border-color:var(--dh-primary);background:var(--dh-primary)}.el-checkbox__input.is-checked+.el-checkbox__label,.el-radio__input.is-checked+.el-radio__label{color:var(--dh-text)}.el-checkbox__inner{border-color:#bdc3cd;border-radius:4px}.el-switch__core{border-color:#e5e5ea!important;background:#e5e5ea!important}.el-switch__core:after{box-shadow:0 1px 3px rgba(0,0,0,.2)}.el-switch.is-checked .el-switch__core{border-color:#007aff!important;background:#007aff!important}.el-switch__label.is-active{color:var(--dh-text)}.el-radio-button__inner{color:var(--dh-text-secondary);border-color:var(--dh-border);background:var(--dh-surface);box-shadow:none}.el-radio-button__orig-radio:checked+.el-radio-button__inner{border-color:var(--dh-action);background:var(--dh-action);box-shadow:-1px 0 0 0 var(--dh-action)}.el-radio-button:first-child .el-radio-button__inner{border-radius:8px 0 0 8px}.el-radio-button:last-child .el-radio-button__inner{border-radius:0 8px 8px 0}.article-table,.el-table,.feature-manage-table{width:100%;color:var(--dh-text);border-color:var(--dh-border);border-radius:0;background:var(--dh-surface);box-shadow:none;font-size:13px;font-variant-numeric:tabular-nums}.article-table,table.feature-manage-table{min-width:760px;border-collapse:separate;border-spacing:0;text-align:left}.article-table th,.el-table th.el-table__cell,table.feature-manage-table th{height:44px;padding:10px 0;color:var(--dh-text-secondary);border-color:var(--dh-border);background:var(--dh-surface-muted);font-size:12px;font-weight:550;letter-spacing:0}.el-table td.el-table__cell{padding:12px 0;border-color:#eceef2;background:var(--dh-surface)}.el-table .cell{padding-right:12px;padding-left:12px;line-height:21px;word-break:normal}.el-table .el-table-column--selection .cell{padding-right:8px;padding-left:8px;text-overflow:clip}.article-table td,.article-table th,table.feature-manage-table td,table.feature-manage-table th{padding:13px 16px;border-bottom:1px solid var(--dh-border)}.article-table td,table.feature-manage-table td{height:54px;vertical-align:middle}.article-table tbody tr:hover,.el-table--enable-row-hover .el-table__body tr:hover>td.el-table__cell,.el-table__body tr.hover-row>td.el-table__cell,table.feature-manage-table tbody tr:hover{background:#f8f9fb}.el-table__body tr.current-row>td.el-table__cell{background:var(--dh-primary-faint)}.el-table--border:after,.el-table--group:after,.el-table:before{background-color:var(--dh-border)}.el-empty,.el-table__empty-block{min-height:200px;color:var(--dh-text-muted)}.el-table .el-table__body-wrapper{overscroll-behavior-x:contain}.article-tag,.el-tag,.user-status-active,.user-status-blocked{display:inline-flex;align-items:center;justify-content:center;height:auto;min-height:24px;padding:2px 8px;border:1px solid var(--dh-border);border-radius:6px;color:var(--dh-text-secondary);background:var(--dh-surface-muted);font-size:11px;font-weight:500;line-height:18px;white-space:nowrap}.el-tag.el-tag--success,.user-status-active{color:var(--dh-success);border-color:#d4e6d9;background:var(--dh-success-soft)}.el-tag.el-tag--warning{color:var(--dh-warning);border-color:#ecdfc5;background:var(--dh-warning-soft)}.el-tag.el-tag--danger,.user-status-blocked{color:var(--dh-danger);border-color:#efd4d6;background:var(--dh-danger-soft)}.el-tag.el-tag--info{color:var(--dh-text-secondary);border-color:var(--dh-border);background:var(--dh-surface-muted)}.el-tag.el-tag--primary{color:var(--dh-primary-hover);border-color:#cbdff8;background:var(--dh-primary-soft)}.el-tag--dark{color:#fff;background:var(--dh-action);border-color:var(--dh-action)}.user-status-active,.user-status-blocked{gap:6px}.user-status-active:before,.user-status-blocked:before{width:5px;height:5px;border-radius:50%;background:currentColor;content:""}.article-tag{margin:2px 5px 2px 0}.el-tabs__item{color:var(--dh-text-secondary);font-size:13px;font-weight:500}.el-tabs__item.is-active{font-weight:600}.el-tabs__item.is-active,.el-tabs__item:hover{color:var(--dh-primary-hover)}.el-tabs__active-bar{height:2px;background:var(--dh-action)}.el-tabs__nav-wrap:after{height:1px;background:var(--dh-border)}.workspace-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin:0 0 22px;padding:22px 0;border:1px solid var(--dh-border);border-radius:var(--dh-radius-lg);background:var(--dh-surface)}.summary-metric{display:flex;align-items:center;gap:14px;min-width:0;padding:0 24px;border-right:1px solid var(--dh-border)}.summary-metric:last-child{border-right:0}.summary-icon{display:grid;place-items:center;width:40px;height:40px;flex:0 0 40px;border-radius:10px;color:var(--dh-primary-hover);background:var(--dh-primary-soft);font-size:20px}.summary-icon.is-green{color:var(--dh-success);background:var(--dh-success-soft)}.summary-label{display:block;margin-bottom:3px;color:var(--dh-text-secondary);font-size:12px}.summary-metric strong{display:block;color:var(--dh-text);font-size:25px;font-weight:600;line-height:1.3;font-variant-numeric:tabular-nums}.summary-metric small{margin-left:4px;color:var(--dh-text-secondary);font-size:12px;font-weight:400}.workbench-panel{min-width:0}.workbench-panel>.el-card__body{padding:20px}.workbench-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding-bottom:20px}.field-search{width:min(350px,100%);flex:0 1 350px}.field-search .el-input__inner{padding-right:68px}.field-search .el-input__suffix{display:flex;align-items:center;right:5px}.field-search .el-input__suffix-inner,.input-search-trigger{display:inline-flex;align-items:center}.input-search-trigger{justify-content:center;width:30px;height:30px;padding:0;border:0;border-radius:6px;color:var(--dh-primary-hover);background:transparent}.input-search-trigger:hover{background:var(--dh-primary-soft)}.toolbar-spacer{flex:1}.batch-actions{display:flex;align-items:center;flex-wrap:wrap;gap:7px}.batch-actions .el-button+.el-button{margin-left:0}.selection-hint{color:var(--dh-text-secondary);font-size:12px;white-space:nowrap}.batch-actions .selection-hint{margin-right:6px}.workbench-table .cell{padding-left:10px;padding-right:10px}.data-stack{display:grid;gap:4px;min-width:0;font-size:13px;line-height:1.5}.data-primary{color:var(--dh-text);font-weight:550}.data-secondary{color:var(--dh-text-secondary);font-size:12px}.data-stack>.data-primary,.data-stack>.data-secondary{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.environment-tag{display:inline-block;max-width:100%;padding:3px 7px;border:1px solid #d0dff1;border-radius:6px;color:#315e93;background:#eef4fb;font-size:12px;font-weight:550;line-height:18px;overflow-wrap:anywhere}@media (max-width:1180px){.workbench-panel>.el-card__body{padding:16px}.summary-metric{padding:0 20px}}.devices-pagination,.pagination,.pagination-container{gap:10px;margin-top:18px;padding:16px 0 4px;border-top:1px solid var(--dh-border);font-size:12px}.devices-pagination,.el-pagination,.pagination,.pagination-container{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;color:var(--dh-text-secondary)}.el-pagination{gap:4px;padding:0;white-space:normal}.el-pagination .el-pager{display:flex}.el-pagination .btn-next,.el-pagination .btn-prev,.el-pagination .el-pager li{min-width:30px;height:30px;padding:0 7px;margin:0 2px;line-height:30px;border:1px solid transparent;border-radius:7px;color:var(--dh-text-secondary);background:transparent;font-size:12px;font-weight:500}.el-pagination .el-pager li.active,.el-pagination.is-background .el-pager li:not(.disabled).active{color:#fff;border-color:var(--dh-action);background:var(--dh-action)}.el-pagination.is-background .btn-next,.el-pagination.is-background .btn-prev,.el-pagination.is-background .el-pager li{border-radius:7px;background:transparent}.el-pagination .btn-next:hover,.el-pagination .btn-prev:hover,.el-pagination .el-pager li:not(.active):hover{color:var(--dh-text);background:#eceef2}.el-pagination .el-input__inner{height:30px;line-height:30px;font-size:12px}.el-pagination .el-input__icon{line-height:30px}.el-pagination__jump,.el-pagination__total{color:var(--dh-text-secondary);font-size:12px}.el-pagination__jump{margin-left:10px}.el-pagination__sizes{margin-right:6px}.el-pagination__editor.el-input{width:44px}.el-pagination__sizes .el-input{width:108px}.page-button,.pagination-btn{min-height:32px;padding:6px 12px;font-size:12px}.pagination-select{min-height:32px;padding:5px 10px;font-size:12px}.v-modal{background:#20242d;opacity:.32}.el-dialog,.el-message-box{max-width:calc(100vw - 48px);border:1px solid var(--dh-border);border-radius:var(--dh-radius-lg);box-shadow:var(--dh-shadow-md);overflow:hidden}.el-dialog__header{padding:20px 24px 16px;border-bottom:1px solid var(--dh-border)}.el-dialog__title{color:var(--dh-text);font-size:18px;font-weight:600}.el-dialog__body{padding:22px 24px;color:var(--dh-text-secondary)}.el-dialog__footer{padding:16px 24px;border-top:1px solid var(--dh-border);background:var(--dh-surface-muted)}.el-message-box__header{padding:20px 24px 12px}.el-message-box__content{padding:12px 24px;color:var(--dh-text-secondary);font-size:14px}.el-message-box__btns{padding:12px 24px 18px}.el-message-box__title{color:var(--dh-text);font-size:17px;font-weight:600}.custom-confirm-button.el-button{color:#fff!important;background:var(--dh-danger)!important;border-color:var(--dh-danger)!important}.el-message{border:1px solid var(--dh-border);border-radius:10px;box-shadow:var(--dh-shadow-sm)}.el-loading-mask{background:hsla(0,0%,100%,.86)}.el-loading-spinner .path{stroke:var(--dh-primary)}.el-cascader__dropdown,.el-dropdown-menu,.el-menu--popup,.el-popover,.el-select-dropdown{border:1px solid var(--dh-border);border-radius:10px;box-shadow:var(--dh-shadow-md)}.el-dropdown-menu__item:not(.is-disabled):hover,.el-select-dropdown__item.hover,.el-select-dropdown__item:hover{color:var(--dh-text);background:var(--dh-surface-muted)}.el-select-dropdown__item.selected{color:var(--dh-primary-hover);font-weight:600}.el-menu--popup .el-menu-item{min-width:176px;height:40px;padding-left:24px!important;color:var(--dh-text-secondary);line-height:40px;font-size:13px}.el-menu--popup .el-menu-item.is-active{color:var(--dh-text);background:var(--dh-surface-muted)}.el-alert{border-radius:var(--dh-radius-sm)}.el-alert--info.is-light{color:var(--dh-text-secondary);background:var(--dh-surface-muted)}.el-alert--success.is-light{color:var(--dh-success);background:var(--dh-success-soft)}.el-alert--warning.is-light{color:var(--dh-warning);background:var(--dh-warning-soft)}.el-alert--error.is-light{color:var(--dh-danger);background:var(--dh-danger-soft)}.el-divider{background-color:var(--dh-border)}.el-progress-bar__inner{background:var(--dh-primary)}.el-progress.is-success .el-progress-bar__inner{background:var(--dh-success)}.el-upload-dragger{border:1px dashed var(--dh-border-strong);border-radius:var(--dh-radius-md);background:var(--dh-surface-muted)}.el-upload-dragger:hover{border-color:var(--dh-primary)}.online,.status-online,.success-text{color:var(--dh-success)}.offline,.status-offline{color:var(--dh-danger)}.auth-form .el-form-item{margin-bottom:20px}.auth-form .el-form-item__label{padding-bottom:8px;color:var(--dh-text);line-height:1.3;font-size:13px;font-weight:500}.auth-form .el-input__inner{height:48px;padding-left:42px;font-size:14px}.auth-form .el-input__prefix{left:13px;display:flex;align-items:center;color:var(--dh-text-muted);font-size:18px}.auth-form .el-input-group__append{padding:0;border-radius:0 9px 9px 0;overflow:hidden}.auth-form .el-input-group__append .el-button{min-height:46px;margin:0;padding:0 16px;border:0;background:transparent;color:var(--dh-primary-hover)}.auth-submit.el-button{width:100%;height:48px;margin-top:4px;border-radius:9px;font-size:14px}.auth-links{display:flex;justify-content:space-between;gap:18px;margin-top:18px}.auth-link{color:var(--dh-text-secondary);font-size:13px;text-decoration:none}.auth-link:hover{color:var(--dh-primary-hover)}.auth-form .el-form-item__error{padding-top:6px;color:var(--dh-danger)}.auth-note{display:flex;align-items:center;justify-content:center;gap:7px;margin-top:24px;color:var(--dh-text-muted);font-size:12px}.auth-note i{color:var(--dh-text-secondary)}@media (max-width:1180px){.el-card__body,.feature-manage-card{padding:16px}.feature-manage-card.el-card{padding:0}.feature-manage-header .search-input{flex-basis:280px}}@media (prefers-reduced-motion:reduce){*,:after,:before{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.feature-manage{display:block}.feature-manage-card{overflow:hidden}.table-scroll{width:100%;overflow-x:auto;overscroll-behavior-x:contain}.feature-manage-card.el-card{overflow:hidden}.feature-manage-card .el-table{min-width:0}table.feature-manage-table tbody tr:last-child td{border-bottom:0}.form-row{display:flex;gap:20px}.form-col{flex:1;min-width:0}.dialog-input,.dialog-select,.form-input{width:100%;margin-top:7px}.feature-manage-dialog{position:fixed;inset:0;z-index:2000;display:flex;align-items:center;justify-content:center;padding:24px;background:rgba(24,28,36,.3)}.dialog-content{width:min(680px,100%);max-height:calc(100vh - 48px);min-width:0;overflow-y:auto;border:1px solid var(--dh-border);border-radius:var(--dh-radius-lg);background:var(--dh-surface);box-shadow:var(--dh-shadow-md)}.dialog-content h3{margin:0;padding:20px 24px 16px;color:var(--dh-text);border-bottom:1px solid var(--dh-border);font-size:18px;font-weight:600}.dialog-content label{color:var(--dh-text-secondary);font-size:13px;font-weight:450}.dialog-content>.form-group,.dialog-content>.form-row,.dialog-content>.permission-list,.dialog-content>div:not(.dialog-actions),.dialog-content>form>.form-row,.dialog-content>form>label{display:block;margin:20px 24px}.dialog-content>form>.form-row{display:flex}.dialog-actions{justify-content:flex-end;gap:8px;margin-top:22px;padding:16px 24px;border-top:1px solid var(--dh-border);background:var(--dh-surface-muted)}.dialog-actions,.loading-mask{display:flex;align-items:center}.loading-mask{position:fixed;inset:0;z-index:2100;flex-direction:column;justify-content:center;color:var(--dh-text);background:hsla(0,0%,100%,.84)}.loading-spinner{width:32px;height:32px;margin-bottom:12px;border:3px solid var(--dh-border);border-top-color:var(--dh-primary);border-radius:50%;animation:manage-spin .72s linear infinite}.dialog-fade-enter-active,.dialog-fade-leave-active{transition:opacity .16s ease}.dialog-fade-enter,.dialog-fade-leave-to{opacity:0}@keyframes manage-spin{to{transform:rotate(1turn)}}@media (prefers-reduced-motion:reduce){.loading-spinner{animation-duration:.01ms}}.article-content,.markdown-preview{color:var(--dh-text);font-size:14px;line-height:1.9;overflow-wrap:anywhere}.article-content>:first-child,.markdown-preview>:first-child{margin-top:0}.article-content h1,.article-content h2,.article-content h3,.markdown-preview h1,.markdown-preview h2,.markdown-preview h3{margin:28px 0 14px;color:var(--dh-ink);font-weight:600;line-height:1.5}.article-content h1,.markdown-preview h1{font-size:26px}.article-content h2,.markdown-preview h2{font-size:22px}.article-content h3,.markdown-preview h3{font-size:18px}.article-content p,.markdown-preview p{margin:14px 0}.article-content img,.markdown-preview img{max-width:100%;height:auto;border-radius:8px}.article-content pre,.markdown-preview pre{max-width:100%;overflow-x:auto;padding:18px;border:1px solid var(--dh-border);border-radius:9px;background:var(--dh-surface-muted)}.article-content code,.markdown-preview code{padding:2px 5px;border-radius:4px;color:var(--dh-text);background:#eff1f4;font:12px/1.7 ui-monospace,SFMono-Regular,Menlo,monospace}.article-content pre code,.markdown-preview pre code{padding:0;background:transparent}.article-content blockquote,.markdown-preview blockquote{margin:20px 0;padding:2px 18px;border-left:3px solid var(--dh-border-strong);color:var(--dh-text-secondary)}.article-content table,.markdown-preview table{display:block;max-width:100%;overflow-x:auto;border-collapse:collapse;font-size:13px}.article-content td,.article-content th,.markdown-preview td,.markdown-preview th{padding:10px 14px;border:1px solid var(--dh-border)}.article-content th,.markdown-preview th{background:var(--dh-surface-muted);font-weight:550}.article-content hr,.markdown-preview hr{margin:24px 0;border:0;border-top:1px solid var(--dh-border)}.auth-page[data-v-23597d34]{min-height:100vh;display:grid;place-items:center;padding:40px;background:var(--dh-bg)}.auth-frame[data-v-23597d34]{width:min(1080px,100%);min-height:680px;display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--dh-border);border-radius:var(--dh-radius-xl);background:var(--dh-surface);box-shadow:var(--dh-shadow-sm);overflow:hidden}.auth-story[data-v-23597d34]{min-width:0;display:flex;flex-direction:column;padding:42px 44px 30px;color:var(--dh-text);background:var(--dh-sidebar-bg);border-right:1px solid var(--dh-border)}.brand-lockup[data-v-23597d34]{display:flex;align-items:center;gap:12px;color:var(--dh-ink);font-size:18px;font-weight:650;letter-spacing:-.025em}.brand-mark[data-v-23597d34]{width:36px;height:40px;display:inline-flex;align-items:center;justify-content:center;color:#fff;border-radius:10px;background:var(--dh-action);font-size:21px}.story-content[data-v-23597d34]{margin:58px 0 32px}.story-kicker[data-v-23597d34]{margin-bottom:16px;color:var(--dh-text-secondary);font-size:12px;letter-spacing:.04em}.story-content h1[data-v-23597d34]{margin:0 0 22px;color:var(--dh-ink);font-size:44px;font-weight:600;line-height:1.4;letter-spacing:-.035em}.story-content p[data-v-23597d34]{margin:0;color:var(--dh-text-secondary);font-size:13px;line-height:1.9}.story-workspace[data-v-23597d34]{border:1px solid var(--dh-border);border-radius:12px;background:hsla(0,0%,100%,.72);overflow:hidden}.workspace-heading[data-v-23597d34]{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--dh-border);color:var(--dh-text-secondary);font-size:11px}.workspace-heading span[data-v-23597d34]{display:flex;align-items:center;gap:8px}.workspace-row[data-v-23597d34]{display:flex;align-items:center;gap:12px;padding:14px 16px}.workspace-row+.workspace-row[data-v-23597d34]{border-top:1px solid var(--dh-border)}.workspace-icon[data-v-23597d34]{width:32px;height:32px;display:flex;align-items:center;justify-content:center;color:var(--dh-text-secondary);font-size:18px}.workspace-row div[data-v-23597d34]{display:grid;gap:4px}.workspace-row strong[data-v-23597d34]{color:var(--dh-text);font-size:12px;font-weight:500}.workspace-row div span[data-v-23597d34]{color:var(--dh-text-secondary);font-size:11px}.workspace-row>i[data-v-23597d34]{margin-left:auto;color:var(--dh-text-muted)}.story-footer[data-v-23597d34]{display:flex;justify-content:space-between;gap:12px;margin-top:auto;padding-top:32px;color:var(--dh-text-secondary);font-size:10px;letter-spacing:.06em}.auth-panel[data-v-23597d34]{min-width:0;position:relative;display:grid;place-items:center;padding:64px 62px 80px}.auth-panel-inner[data-v-23597d34]{width:100%;max-width:400px}.auth-eyebrow[data-v-23597d34]{margin-bottom:12px;color:var(--dh-text-secondary);font-size:12px;letter-spacing:.04em}.auth-panel h2[data-v-23597d34]{margin:0 0 12px;color:var(--dh-ink);font-size:30px;font-weight:600;line-height:1.3;letter-spacing:-.025em}.auth-description[data-v-23597d34]{margin:0 0 30px;color:var(--dh-text-secondary);font-size:13px;line-height:1.75}.auth-panel-footer[data-v-23597d34]{position:absolute;bottom:26px;color:var(--dh-text-secondary);font-size:11px}@media (max-width:1100px){.auth-page[data-v-23597d34]{padding:28px}.auth-frame[data-v-23597d34]{min-height:640px}.auth-story[data-v-23597d34]{padding:34px 30px 28px}.story-content[data-v-23597d34]{margin-top:46px}.story-content h1[data-v-23597d34]{font-size:38px}.auth-panel[data-v-23597d34]{padding:48px 34px 74px}.desktop-break[data-v-23597d34]{display:none}}@media (max-width:760px){.auth-page[data-v-23597d34]{padding:20px}.auth-frame[data-v-23597d34]{max-width:480px;min-height:0;grid-template-columns:1fr}.auth-story[data-v-23597d34]{padding:24px 28px;border-right:0;border-bottom:1px solid var(--dh-border)}.story-content[data-v-23597d34],.story-footer[data-v-23597d34],.story-workspace[data-v-23597d34]{display:none}.auth-panel[data-v-23597d34]{padding:36px 28px 74px}}