:root{--el-color-white:#fff;--el-color-black:#000;--el-color-primary-rgb:64, 158, 255;--el-color-success-rgb:103, 194, 58;--el-color-warning-rgb:230, 162, 60;--el-color-danger-rgb:245, 108, 108;--el-color-error-rgb:245, 108, 108;--el-color-info-rgb:144, 147, 153;--el-font-size-extra-large:20px;--el-font-size-large:18px;--el-font-size-medium:16px;--el-font-size-base:14px;--el-font-size-small:13px;--el-font-size-extra-small:12px;--el-font-family:"Helvetica Neue", Helvetica, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "微软雅黑", Arial, sans-serif;--el-font-weight-primary:500;--el-font-line-height-primary:24px;--el-index-normal:1;--el-index-top:1000;--el-index-popper:2000;--el-border-radius-base:4px;--el-border-radius-small:2px;--el-border-radius-round:20px;--el-border-radius-circle:100%;--el-transition-duration:.3s;--el-transition-duration-fast:.2s;--el-transition-function-ease-in-out-bezier:cubic-bezier(.645, .045, .355, 1);--el-transition-function-fast-bezier:cubic-bezier(.23, 1, .32, 1);--el-transition-all:all var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier);--el-transition-fade:opacity var(--el-transition-duration) var(--el-transition-function-fast-bezier);--el-transition-md-fade:transform var(--el-transition-duration) var(--el-transition-function-fast-bezier), opacity var(--el-transition-duration) var(--el-transition-function-fast-bezier);--el-transition-fade-linear:opacity var(--el-transition-duration-fast) linear;--el-transition-border:border-color var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-transition-box-shadow:box-shadow var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-transition-color:color var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-component-size-large:40px;--el-component-size:32px;--el-component-size-small:24px;color-scheme:light;--el-color-primary:#409eff;--el-color-primary-light-3:#79bbff;--el-color-primary-light-5:#a0cfff;--el-color-primary-light-7:#c6e2ff;--el-color-primary-light-8:#d9ecff;--el-color-primary-light-9:#ecf5ff;--el-color-primary-dark-2:#337ecc;--el-color-success:#67c23a;--el-color-success-light-3:#95d475;--el-color-success-light-5:#b3e19d;--el-color-success-light-7:#d1edc4;--el-color-success-light-8:#e1f3d8;--el-color-success-light-9:#f0f9eb;--el-color-success-dark-2:#529b2e;--el-color-warning:#e6a23c;--el-color-warning-light-3:#eebe77;--el-color-warning-light-5:#f3d19e;--el-color-warning-light-7:#f8e3c5;--el-color-warning-light-8:#faecd8;--el-color-warning-light-9:#fdf6ec;--el-color-warning-dark-2:#b88230;--el-color-danger:#f56c6c;--el-color-danger-light-3:#f89898;--el-color-danger-light-5:#fab6b6;--el-color-danger-light-7:#fcd3d3;--el-color-danger-light-8:#fde2e2;--el-color-danger-light-9:#fef0f0;--el-color-danger-dark-2:#c45656;--el-color-error:#f56c6c;--el-color-error-light-3:#f89898;--el-color-error-light-5:#fab6b6;--el-color-error-light-7:#fcd3d3;--el-color-error-light-8:#fde2e2;--el-color-error-light-9:#fef0f0;--el-color-error-dark-2:#c45656;--el-color-info:#909399;--el-color-info-light-3:#b1b3b8;--el-color-info-light-5:#c8c9cc;--el-color-info-light-7:#dedfe0;--el-color-info-light-8:#e9e9eb;--el-color-info-light-9:#f4f4f5;--el-color-info-dark-2:#73767a;--el-bg-color:#fff;--el-bg-color-page:#f2f3f5;--el-bg-color-overlay:#fff;--el-text-color-primary:#303133;--el-text-color-regular:#606266;--el-text-color-secondary:#909399;--el-text-color-placeholder:#a8abb2;--el-text-color-disabled:#c0c4cc;--el-border-color:#dcdfe6;--el-border-color-light:#e4e7ed;--el-border-color-lighter:#ebeef5;--el-border-color-extra-light:#f2f6fc;--el-border-color-dark:#d4d7de;--el-border-color-darker:#cdd0d6;--el-fill-color:#f0f2f5;--el-fill-color-light:#f5f7fa;--el-fill-color-lighter:#fafafa;--el-fill-color-extra-light:#fafcff;--el-fill-color-dark:#ebedf0;--el-fill-color-darker:#e6e8eb;--el-fill-color-blank:#fff;--el-box-shadow:0px 12px 32px 4px #0000000a, 0px 8px 20px #00000014;--el-box-shadow-light:0px 0px 12px #0000001f;--el-box-shadow-lighter:0px 0px 6px #0000001f;--el-box-shadow-dark:0px 16px 48px 16px #00000014, 0px 12px 32px #0000001f, 0px 8px 16px -8px #00000029;--el-disabled-bg-color:var(--el-fill-color-light);--el-disabled-text-color:var(--el-text-color-placeholder);--el-disabled-border-color:var(--el-border-color-light);--el-overlay-color:#000c;--el-overlay-color-light:#000000b3;--el-overlay-color-lighter:#00000080;--el-mask-color:#ffffffe6;--el-mask-color-extra-light:#ffffff4d;--el-border-width:1px;--el-border-style:solid;--el-border-color-hover:var(--el-text-color-disabled);--el-border:var(--el-border-width) var(--el-border-style) var(--el-border-color);--el-svg-monochrome-grey:var(--el-border-color)}@keyframes rotating{0%{transform:rotate(0)}to{transform:rotate(360deg)}}#nprogress{pointer-events:none}#nprogress .bar{z-index:1031;background:#29d;width:100%;height:2px;position:fixed;top:0;left:0}#nprogress .peg{opacity:1;width:100px;height:100%;display:block;position:absolute;right:0;transform:rotate(3deg)translateY(-4px);box-shadow:0 0 10px #29d,0 0 5px #29d}#nprogress .spinner{z-index:1031;display:block;position:fixed;top:15px;right:15px}#nprogress .spinner-icon{box-sizing:border-box;border:2px solid #0000;border-color:#29d #0000 #0000 #29d;border-radius:50%;width:18px;height:18px;animation:.4s linear infinite nprogress-spinner}.nprogress-custom-parent{position:relative;overflow:hidden}.nprogress-custom-parent #nprogress .spinner,.nprogress-custom-parent #nprogress .bar{position:absolute}@-webkit-keyframes nprogress-spinner{0%{-webkit-transform:rotate(0)}to{-webkit-transform:rotate(360deg)}}@keyframes nprogress-spinner{0%{transform:rotate(0)}to{transform:rotate(360deg)}}[data-v-a761caf7] .side-panel-drawer{flex-direction:column;display:flex;overflow:hidden}[data-v-a761caf7] .side-panel-drawer .el-drawer__body{flex-direction:column;flex:1;min-height:0;padding:0;display:flex;overflow:hidden}[data-v-a761caf7] .side-panel-drawer .el-drawer__footer{flex-shrink:0;padding:0}.side-panel-header[data-v-a761caf7]{align-items:center;gap:var(--spacing-3);width:100%;min-width:0;display:flex}.side-panel-title[data-v-a761caf7]{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);color:var(--text-primary);flex:auto;overflow:hidden}.side-panel-actions[data-v-a761caf7]{align-items:center;gap:var(--spacing-2);flex:none;display:flex}.side-panel-close[data-v-a761caf7]{cursor:pointer}.side-panel-body[data-v-a761caf7]{min-height:0;padding:var(--spacing-4);flex:1;overflow:hidden auto}.side-panel-body--fixed[data-v-a761caf7]{overflow-y:hidden}.side-panel-footer[data-v-a761caf7]{padding:var(--spacing-4) var(--spacing-5);border-top:1px solid var(--border-lighter);justify-content:flex-end;gap:var(--spacing-3);display:flex}.side-panel-drawer{flex-direction:column;display:flex;overflow:hidden}.side-panel-drawer .el-drawer__header{padding:var(--spacing-5) var(--spacing-6);border-bottom:1px solid var(--border-lighter);flex-shrink:0;margin-bottom:0}.side-panel-drawer .el-drawer__body{flex-direction:column;flex:1;min-height:0;padding:0;display:flex;overflow:hidden}.side-panel-drawer .el-drawer__footer{flex-shrink:0;padding:0}.data-grid-pagination[data-v-353941fd]{align-items:center;display:flex}.data-grid-pagination.is-left[data-v-353941fd]{justify-content:flex-start}.data-grid-pagination.is-center[data-v-353941fd]{justify-content:center}.data-grid-pagination.is-right[data-v-353941fd]{justify-content:flex-end}.role-api-permission-table[data-v-137dca82]{grid-template-rows:auto auto minmax(0,1fr);height:100%;min-height:0;display:grid;overflow:hidden}.permission-toolbar[data-v-137dca82]{justify-content:space-between;align-items:center;gap:var(--spacing-3);margin-bottom:var(--spacing-3);display:flex}.permission-search[data-v-137dca82]{width:min(360px,100%)}.permission-toolbar__actions[data-v-137dca82]{justify-content:flex-end;align-items:center;gap:var(--spacing-2);flex-wrap:wrap;display:flex}.permission-filter-info[data-v-137dca82]{margin-bottom:var(--spacing-2);color:var(--text-secondary);font-size:12px}.permission-list-region[data-v-137dca82]{min-height:0;overflow:hidden}.role-api-permission-table[data-v-137dca82] .api-group-row td.el-table__cell{background-color:var(--bg-hover);font-weight:600}.role-api-permission-table[data-v-137dca82] .api-group-row .el-table-column--selection .el-checkbox{visibility:hidden}.role-api-permission-table[data-v-137dca82] .api-group-row .api-permission-code-column>.cell{align-items:center;gap:var(--spacing-1);min-width:0;display:flex}.api-group-cell[data-v-137dca82]{align-items:center;gap:var(--spacing-2);flex:auto;min-width:0;display:flex}.api-group-label[data-v-137dca82]{min-width:0;color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.api-permission-details[data-v-137dca82]{gap:var(--spacing-1);overflow-wrap:anywhere;color:var(--text-secondary);display:grid}.api-group-cell .el-tag[data-v-137dca82]{flex:none;margin-left:auto;font-weight:400}@media (width<=767px){.permission-toolbar[data-v-137dca82]{flex-direction:column;align-items:stretch}.permission-toolbar__actions[data-v-137dca82]{justify-content:flex-start}.permission-search[data-v-137dca82]{width:100%}}.role-menu-button-tree[data-v-e072c163]{grid-template-rows:auto minmax(0,1fr);height:100%;min-height:0;display:grid;overflow:hidden}.permission-toolbar[data-v-e072c163]{justify-content:space-between;align-items:center;gap:var(--spacing-3);margin-bottom:var(--spacing-3);flex-wrap:wrap;display:flex}.permission-module[data-v-e072c163]{width:180px;max-width:100%}.permission-search[data-v-e072c163]{width:min(360px,100%)}.permission-toolbar__actions[data-v-e072c163]{justify-content:flex-end;align-items:center;gap:var(--spacing-2);flex-wrap:wrap;display:flex}.tree-container[data-v-e072c163]{border:1px solid var(--border-extra-light);border-radius:var(--radius-base);min-height:0;overflow:hidden}.tree-node[data-v-e072c163]{align-items:center;gap:var(--spacing-2);width:100%;min-width:0;display:flex}.node-text[data-v-e072c163]{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.node-tag[data-v-e072c163]{flex-shrink:0}@media (width<=767px){.permission-toolbar[data-v-e072c163]{flex-direction:column;align-items:stretch}.permission-toolbar__actions[data-v-e072c163]{justify-content:flex-start}.permission-search[data-v-e072c163]{width:100%}}.permission-diff[data-v-bd0c9d99]{padding-top:var(--spacing-4);border-top:1px solid var(--border-lighter)}.permission-diff__header[data-v-bd0c9d99]{justify-content:space-between;align-items:center;gap:var(--spacing-3);margin-bottom:var(--spacing-3);color:var(--text-secondary);display:flex}.permission-diff__groups[data-v-bd0c9d99]{gap:var(--spacing-2);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.permission-diff__group[data-v-bd0c9d99]{align-items:center;gap:var(--spacing-2);min-width:0;padding:var(--spacing-2);border:1px solid var(--border-extra-light);border-radius:var(--radius-base);background-color:var(--bg-component);display:flex}.permission-diff__items[data-v-bd0c9d99]{min-width:0;color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:12px;overflow:hidden}@media (width<=767px){.permission-diff__groups[data-v-bd0c9d99]{grid-template-columns:minmax(0,1fr)}}.permission-panel[data-v-0ff4db57]{gap:var(--spacing-4);flex-direction:column;height:100%;min-height:0;display:flex;overflow:hidden}.permission-panel__summary[data-v-0ff4db57]{justify-content:space-between;align-items:center;gap:var(--spacing-4);padding:var(--spacing-4);border:1px solid var(--border-extra-light);border-radius:var(--radius-base);background-color:var(--bg-hover);display:flex}.permission-panel__role[data-v-0ff4db57]{gap:var(--spacing-1);flex-direction:column;min-width:0;display:flex}.permission-panel__role strong[data-v-0ff4db57]{color:var(--text-primary);font-size:var(--font-size-md);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.permission-panel__label[data-v-0ff4db57]{color:var(--text-secondary);font-size:12px}.permission-panel__stats[data-v-0ff4db57]{justify-content:flex-end;gap:var(--spacing-2);flex-wrap:wrap;display:flex}.permission-stat[data-v-0ff4db57]{min-height:24px;padding:0 var(--spacing-3);border:1px solid var(--border-lighter);border-radius:var(--radius-base);color:var(--text-secondary);background-color:var(--bg-component);white-space:nowrap;align-items:center;font-size:12px;display:inline-flex}.permission-panel__empty[data-v-0ff4db57]{flex:1;justify-content:center;align-items:center;min-height:320px;display:flex}.permission-tabs[data-v-0ff4db57]{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.permission-tabs[data-v-0ff4db57] .el-tabs__header{flex:none}.permission-tabs[data-v-0ff4db57] .el-tabs__content{flex:1;min-height:0;display:flex;overflow:hidden}.permission-tabs[data-v-0ff4db57] .el-tab-pane{flex:1;height:auto;min-height:0}.permission-tabs[data-v-0ff4db57] .permission-tab-pane{height:100%;overflow:hidden}.permission-tabs[data-v-0ff4db57] .el-tab-pane:not(.permission-tab-pane){overflow:hidden auto}.permission-footer[data-v-0ff4db57]{align-items:center;width:100%}.permission-footer__spacer[data-v-0ff4db57]{flex:1}@media (width<=767px){.permission-panel__summary[data-v-0ff4db57]{flex-direction:column;align-items:stretch}.permission-panel__stats[data-v-0ff4db57]{justify-content:flex-start}.permission-footer[data-v-0ff4db57]{flex-wrap:wrap}}.drawer-header{width:100%;padding-bottom:var(--spacing-4);border-bottom:1px solid var(--border-extra-light);align-items:center;display:flex}.log-detail .detail-label{width:100px;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--text-secondary);flex-shrink:0}.log-detail .detail-value{min-width:0;color:var(--text-primary);line-height:var(--line-height-base);word-break:break-word;flex:1}.log-detail .detail-value.mono{font-family:var(--font-family-mono);font-size:var(--font-size-sm);color:var(--brand-primary)}.log-detail .detail-row:has(.detail-pre){gap:var(--spacing-2);flex-direction:column}.log-detail .detail-row:has(.detail-pre) .detail-label{width:auto}.log-detail .detail-pre{box-sizing:border-box;width:100%;max-height:400px;padding:var(--spacing-4);border:1px solid var(--border-extra-light);border-radius:var(--radius-base);background:var(--bg-inset);color:var(--text-regular);font-family:var(--font-family-mono);font-size:var(--font-size-xs);line-height:var(--line-height-relaxed);white-space:pre-wrap;word-break:break-all;margin:0;overflow-y:auto}.log-detail .detail-pre.sql{color:var(--brand-primary)}.log-detail .detail-pre.error{color:var(--status-danger);background:var(--status-danger-bg)}@media (width<=576px){.log-detail{padding:0 var(--spacing-4)}.log-detail .detail-row{gap:var(--spacing-1);flex-direction:column}.log-detail .detail-label{width:auto}}:root{--brand-on-primary:#fff;--brand-on-primary-hover:#fff;--brand-on-primary-active:#fff}html:root .el-button--primary:not(.is-plain):not(.is-text):not(.is-link){--el-button-bg-color:var(--brand-primary);--el-button-border-color:var(--brand-primary);--el-button-text-color:var(--brand-on-primary);--el-button-hover-bg-color:var(--brand-primary-hover);--el-button-hover-border-color:var(--brand-primary-hover);--el-button-hover-text-color:var(--brand-on-primary-hover);--el-button-active-bg-color:var(--brand-primary-active);--el-button-active-border-color:var(--brand-primary-active);--el-button-active-text-color:var(--brand-on-primary-active);--el-button-disabled-text-color:var(--brand-on-primary)}html:root .el-button--primary.is-plain:not(.is-text):not(.is-link){--el-button-hover-text-color:var(--brand-on-primary);--el-button-active-text-color:var(--brand-on-primary)}html:root .el-radio-button{--el-radio-button-checked-text-color:var(--brand-on-primary)}html:root .el-checkbox{--el-checkbox-checked-icon-color:var(--brand-on-primary)}html:root .el-segmented{--el-segmented-item-selected-color:var(--brand-on-primary)}html:root .el-tag--primary.el-tag--dark{--el-tag-text-color:var(--brand-on-primary)}html:root .el-pagination.is-background .el-pager li.is-active{color:var(--brand-on-primary)}html:root .el-dropdown{--el-dropdown-font-size:var(--el-font-size-base)}html:root .el-dropdown-menu__item{font-size:var(--el-font-size-base)}@media (width<=767px){.studio-toolbar{padding:var(--spacing-3) var(--spacing-5)}.studio-toolbar__filters{flex-wrap:wrap}.toolbar-input,.toolbar-select,.toolbar-select-sm{width:140px}}.admin-event-log-page[data-v-229ec141]{background-color:var(--bg-component);flex-direction:column;height:100%;min-height:0;display:flex;overflow:hidden}.admin-event-log-page .data-grid-toolbar[data-v-229ec141]{justify-content:space-between;align-items:center;gap:var(--spacing-3);padding:var(--spacing-3) var(--spacing-5);border-bottom:1px solid var(--border-extra-light);background-color:#0000;flex-wrap:wrap;flex-shrink:0;display:flex}.admin-event-log-page .data-grid-toolbar-left[data-v-229ec141],.admin-event-log-page .data-grid-toolbar-right[data-v-229ec141]{align-items:center;gap:var(--spacing-2);flex-wrap:wrap;display:flex}.admin-event-log-page .data-grid-toolbar-left[data-v-229ec141]{flex:1;min-width:0}.admin-event-log-page .data-grid-table[data-v-229ec141]{flex:1;min-height:0;overflow:hidden}.admin-event-log-page[data-v-229ec141] .data-grid-pagination{padding:var(--spacing-3) var(--spacing-5);border-top:1px solid var(--border-extra-light);flex-shrink:0}.admin-event-log-page .title-help-icon[data-v-229ec141]{color:var(--text-secondary);cursor:help;font-size:var(--font-size-md)}@media (width<=768px){.admin-event-log-page .data-grid-toolbar-left[data-v-229ec141]{grid-template-columns:repeat(2,minmax(0,1fr));width:100%;display:grid}.admin-event-log-page[data-v-229ec141] .toolbar-input,.admin-event-log-page[data-v-229ec141] .toolbar-select{min-width:0;width:100%!important}.admin-event-log-page[data-v-229ec141] .toolbar-daterange,.admin-event-log-page[data-v-229ec141] .el-date-editor--datetimerange{grid-column:1/-1;min-width:0;width:100%!important;max-width:100%!important}.admin-event-log-page .title-help-icon[data-v-229ec141]{display:none}}.log-panel .audit-type-switch[data-v-52e80e00]{flex-shrink:0}.log-panel .toolbar-input[data-v-52e80e00]{width:150px}.log-panel .toolbar-input.compact[data-v-52e80e00],.log-panel .toolbar-select[data-v-52e80e00]{width:120px}.log-panel .toolbar-daterange[data-v-52e80e00]{width:var(--toolbar-daterange-width,280px);max-width:var(--toolbar-daterange-max-width,330px)}.log-panel .time-text[data-v-52e80e00]{font-family:var(--font-family-mono);font-size:var(--font-size-sm);color:var(--text-secondary)}.log-panel .operation-scope-switch[data-v-dc78eb0d]{flex-shrink:0}.log-panel .toolbar-input[data-v-dc78eb0d]{width:140px}.log-panel .toolbar-select[data-v-dc78eb0d]{width:120px}.log-panel .toolbar-daterange[data-v-dc78eb0d]{width:var(--toolbar-daterange-width,280px);max-width:var(--toolbar-daterange-max-width,330px)}.log-panel .time-text[data-v-dc78eb0d]{font-family:var(--font-family-mono);font-size:var(--font-size-sm);color:var(--text-secondary)}.log-panel .message-text[data-v-dc78eb0d]{color:var(--text-regular);word-break:break-all}.log-panel .toolbar-input[data-v-b6d69f91]{width:240px}.log-panel .toolbar-select[data-v-b6d69f91]{width:120px}.log-panel .toolbar-daterange[data-v-b6d69f91]{width:var(--toolbar-daterange-width,280px);max-width:var(--toolbar-daterange-max-width,330px)}.log-panel .time-text[data-v-b6d69f91],.log-panel .sql-text[data-v-b6d69f91],.log-panel .value-text[data-v-b6d69f91]{font-family:var(--font-family-mono)}.log-panel .time-text[data-v-b6d69f91]{font-size:var(--font-size-sm);color:var(--text-secondary)}.log-panel .value-text[data-v-b6d69f91]{color:var(--brand-primary);font-weight:var(--font-weight-semibold)}.log-panel .sql-text[data-v-b6d69f91]{font-size:var(--font-size-sm);color:var(--text-regular);word-break:break-all}.log-panel .message-text[data-v-b6d69f91]{color:var(--text-regular);word-break:break-all}.log-panel .message-text.is-error[data-v-b6d69f91]{color:var(--status-danger)}.certificate-page[data-v-d419d91c]{flex-direction:column;height:100%;display:flex}.certificate-content[data-v-d419d91c]{flex:1;overflow:hidden}.validity-text[data-v-d419d91c]{font-size:var(--font-size-sm);color:var(--text-regular)}.danger-text[data-v-d419d91c]{color:var(--status-danger);align-items:center;gap:var(--spacing-2);display:inline-flex}.form-help-icon[data-v-d419d91c]{margin-left:var(--spacing-2);color:var(--text-secondary);cursor:help}.upload-tip[data-v-d419d91c]{font-size:var(--font-size-sm);color:var(--text-secondary);margin-top:var(--spacing-2)}.upload-tip .file-name[data-v-d419d91c]{color:var(--status-success);margin-left:var(--spacing-3)}.export-content[data-v-d419d91c]{width:100%}.export-content .export-actions[data-v-d419d91c]{gap:var(--spacing-3);margin-top:var(--spacing-2);display:flex}[data-v-d419d91c] .dialog-500{max-width:500px}[data-v-d419d91c] .dialog-550{max-width:550px}[data-v-d419d91c] .dialog-650{max-width:650px}.user-form-wrapper[data-v-6e31495b]{padding:var(--spacing-5);flex:1;overflow-y:auto}.form-tip[data-v-6e31495b]{margin-top:var(--spacing-4)}.user-form-wrapper[data-v-e8bb227b],.user-form-wrapper[data-v-0c3fd063]{padding:var(--spacing-5);flex:1;overflow-y:auto}.session-panel[data-v-3d2620d4]{gap:var(--spacing-3);min-height:0;padding:var(--spacing-4);flex-direction:column;flex:1;display:flex}.session-panel__toolbar[data-v-3d2620d4]{justify-content:flex-end;gap:var(--spacing-2);flex-wrap:wrap;display:flex}.session-status[data-v-3d2620d4]{justify-content:center;gap:var(--spacing-1);flex-wrap:wrap;display:flex}.session-table[data-v-3d2620d4]{flex:1;min-height:0}.user-page[data-v-b0908b91]{flex-direction:column;height:100%;display:flex}.user-content[data-v-b0908b91]{flex:1;overflow:hidden}.role-tag[data-v-b0908b91]{margin-right:var(--spacing-1);margin-bottom:var(--spacing-1)}.role-page[data-v-feb0c7fd]{flex-direction:column;height:100%;display:flex}.role-content[data-v-feb0c7fd]{flex:1;overflow:hidden}.role-name-cell[data-v-feb0c7fd]{align-items:center;gap:var(--spacing-2);display:inline-flex}.role-name-cell .super-admin-icon[data-v-feb0c7fd]{color:var(--status-warning)}.role-form-wrapper[data-v-feb0c7fd],.form-wrapper[data-v-3a3431ee]{padding:var(--spacing-5);flex:1;overflow-y:auto}.icon-option[data-v-3a3431ee]{align-items:center;gap:var(--spacing-2);display:flex}.locale-inline-editor[data-v-3a3431ee]{gap:var(--spacing-2);flex-direction:column;width:100%;display:flex}.locale-inline-row[data-v-3a3431ee]{gap:var(--spacing-2);grid-template-columns:minmax(96px,.7fr) minmax(140px,1fr) auto;display:grid}.form-wrapper[data-v-318c4216]{padding:var(--spacing-5);flex:1;overflow-y:auto}.menu-tree-pane[data-v-580548c5]{width:280px;min-width:240px;height:100%;padding:var(--spacing-3);border:1px solid var(--border-color);border-radius:var(--border-radius-base);background:var(--bg-primary);flex:0 0 280px;overflow:auto}.menu-tree-pane__header[data-v-580548c5]{margin-bottom:var(--spacing-3);justify-content:space-between;align-items:center;font-weight:600;display:flex}.menu-tree-node[data-v-580548c5]{align-items:center;gap:var(--spacing-1);min-width:0;display:flex}.drag-handle[data-v-580548c5],.system-lock[data-v-580548c5]{color:var(--el-text-color-secondary);flex:none}@media (width<=768px){.menu-tree-pane[data-v-580548c5]{width:100%;min-width:0;height:260px}}.menu-page[data-v-ae4301ef]{flex-direction:column;height:100%;display:flex}.menu-content[data-v-ae4301ef]{flex:1;overflow:hidden}.menu-layout[data-v-ae4301ef]{gap:var(--spacing-3);height:100%;min-height:0;display:flex}.menu-table-pane[data-v-ae4301ef]{flex:1 1 0;min-width:0}.name-cell[data-v-ae4301ef]{align-items:center;gap:var(--spacing-2);display:inline-flex}.name-cell .menu-icon[data-v-ae4301ef]{color:var(--brand-primary)}.name-cell .button-icon[data-v-ae4301ef]{color:var(--status-success)}.system-lock[data-v-ae4301ef]{color:var(--status-warning)}[data-v-ae4301ef] .el-table .el-table__expand-icon{margin-right:var(--spacing-1)}[data-v-ae4301ef] .el-table .el-table__expand-icon .el-icon{font-size:12px}@media (width<=768px){.menu-layout[data-v-ae4301ef]{flex-direction:column}.menu-content[data-v-ae4301ef]{padding:var(--spacing-3) var(--spacing-5) var(--spacing-5)}}html.dark{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--el-color-primary:#409eff;--el-color-primary-light-3:#3375b9;--el-color-primary-light-5:#2a598a;--el-color-primary-light-7:#213d5b;--el-color-primary-light-8:#1d3043;--el-color-primary-light-9:#18222b;--el-color-primary-dark-2:#66b1ff;--el-color-success:#67c23a;--el-color-success-light-3:#4e8e2f;--el-color-success-light-5:#3e6b27;--el-color-success-light-7:#2d481f;--el-color-success-light-8:#25371c;--el-color-success-light-9:#1c2518;--el-color-success-dark-2:#85ce61;--el-color-warning:#e6a23c;--el-color-warning-light-3:#a77730;--el-color-warning-light-5:#7d5b28;--el-color-warning-light-7:#533f20;--el-color-warning-light-8:#3e301c;--el-color-warning-light-9:#292218;--el-color-warning-dark-2:#ebb563;--el-color-danger:#f56c6c;--el-color-danger-light-3:#b25252;--el-color-danger-light-5:#854040;--el-color-danger-light-7:#582e2e;--el-color-danger-light-8:#412626;--el-color-danger-light-9:#2a1d1d;--el-color-danger-dark-2:#f78989;--el-color-error:#f56c6c;--el-color-error-light-3:#b25252;--el-color-error-light-5:#854040;--el-color-error-light-7:#582e2e;--el-color-error-light-8:#412626;--el-color-error-light-9:#2a1d1d;--el-color-error-dark-2:#f78989;--el-color-info:#909399;--el-color-info-light-3:#6b6d71;--el-color-info-light-5:#525457;--el-color-info-light-7:#393a3c;--el-color-info-light-8:#2d2d2f;--el-color-info-light-9:#202121;--el-color-info-dark-2:#a6a9ad;--el-box-shadow:0px 12px 32px 4px #0000005c, 0px 8px 20px #000000b8;--el-box-shadow-light:0px 0px 12px #000000b8;--el-box-shadow-lighter:0px 0px 6px #000000b8;--el-box-shadow-dark:0px 16px 48px 16px #000000b8, 0px 12px 32px #000, 0px 8px 16px -8px #000;--el-bg-color-page:#0a0a0a;--el-bg-color:#141414;--el-bg-color-overlay:#1d1e1f;--el-text-color-primary:#e5eaf3;--el-text-color-regular:#cfd3dc;--el-text-color-secondary:#a3a6ad;--el-text-color-placeholder:#8d9095;--el-text-color-disabled:#6c6e72;--el-border-color-darker:#636466;--el-border-color-dark:#58585b;--el-border-color:#4c4d4f;--el-border-color-light:#414243;--el-border-color-lighter:#363637;--el-border-color-extra-light:#2b2b2c;--el-fill-color-darker:#424243;--el-fill-color-dark:#39393a;--el-fill-color:#303030;--el-fill-color-light:#262727;--el-fill-color-lighter:#1d1d1d;--el-fill-color-extra-light:#191919;--el-fill-color-blank:#141414;--el-mask-color:#000c;--el-mask-color-extra-light:#0000004d}html.dark .el-button{--el-button-disabled-text-color:#ffffff80}html.dark .el-card{--el-card-bg-color:var(--el-bg-color-overlay);--el-fill-color-blank:var(--el-card-bg-color)}html.dark .el-empty{--el-empty-fill-color-0:var(--el-color-black);--el-empty-fill-color-1:#4b4b52;--el-empty-fill-color-2:#36383d;--el-empty-fill-color-3:#1e1e20;--el-empty-fill-color-4:#262629;--el-empty-fill-color-5:#202124;--el-empty-fill-color-6:#212224;--el-empty-fill-color-7:#1b1c1f;--el-empty-fill-color-8:#1c1d1f;--el-empty-fill-color-9:#18181a}:root{--el-color-white:#fff;--el-color-black:#000;--el-color-primary-rgb:64, 158, 255;--el-color-success-rgb:103, 194, 58;--el-color-warning-rgb:230, 162, 60;--el-color-danger-rgb:245, 108, 108;--el-color-error-rgb:245, 108, 108;--el-color-info-rgb:144, 147, 153;--el-font-size-extra-large:20px;--el-font-size-large:18px;--el-font-size-medium:16px;--el-font-size-base:14px;--el-font-size-small:13px;--el-font-size-extra-small:12px;--el-font-family:"Helvetica Neue", Helvetica, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "微软雅黑", Arial, sans-serif;--el-font-weight-primary:500;--el-font-line-height-primary:24px;--el-index-normal:1;--el-index-top:1000;--el-index-popper:2000;--el-border-radius-base:4px;--el-border-radius-small:2px;--el-border-radius-round:20px;--el-border-radius-circle:100%;--el-transition-duration:.3s;--el-transition-duration-fast:.2s;--el-transition-function-ease-in-out-bezier:cubic-bezier(.645, .045, .355, 1);--el-transition-function-fast-bezier:cubic-bezier(.23, 1, .32, 1);--el-transition-all:all var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier);--el-transition-fade:opacity var(--el-transition-duration) var(--el-transition-function-fast-bezier);--el-transition-md-fade:transform var(--el-transition-duration) var(--el-transition-function-fast-bezier), opacity var(--el-transition-duration) var(--el-transition-function-fast-bezier);--el-transition-fade-linear:opacity var(--el-transition-duration-fast) linear;--el-transition-border:border-color var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-transition-box-shadow:box-shadow var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-transition-color:color var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-component-size-large:40px;--el-component-size:32px;--el-component-size-small:24px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--el-color-primary:#409eff;--el-color-primary-light-3:#79bbff;--el-color-primary-light-5:#a0cfff;--el-color-primary-light-7:#c6e2ff;--el-color-primary-light-8:#d9ecff;--el-color-primary-light-9:#ecf5ff;--el-color-primary-dark-2:#337ecc;--el-color-success:#67c23a;--el-color-success-light-3:#95d475;--el-color-success-light-5:#b3e19d;--el-color-success-light-7:#d1edc4;--el-color-success-light-8:#e1f3d8;--el-color-success-light-9:#f0f9eb;--el-color-success-dark-2:#529b2e;--el-color-warning:#e6a23c;--el-color-warning-light-3:#eebe77;--el-color-warning-light-5:#f3d19e;--el-color-warning-light-7:#f8e3c5;--el-color-warning-light-8:#faecd8;--el-color-warning-light-9:#fdf6ec;--el-color-warning-dark-2:#b88230;--el-color-danger:#f56c6c;--el-color-danger-light-3:#f89898;--el-color-danger-light-5:#fab6b6;--el-color-danger-light-7:#fcd3d3;--el-color-danger-light-8:#fde2e2;--el-color-danger-light-9:#fef0f0;--el-color-danger-dark-2:#c45656;--el-color-error:#f56c6c;--el-color-error-light-3:#f89898;--el-color-error-light-5:#fab6b6;--el-color-error-light-7:#fcd3d3;--el-color-error-light-8:#fde2e2;--el-color-error-light-9:#fef0f0;--el-color-error-dark-2:#c45656;--el-color-info:#909399;--el-color-info-light-3:#b1b3b8;--el-color-info-light-5:#c8c9cc;--el-color-info-light-7:#dedfe0;--el-color-info-light-8:#e9e9eb;--el-color-info-light-9:#f4f4f5;--el-color-info-dark-2:#73767a;--el-bg-color:#fff;--el-bg-color-page:#f2f3f5;--el-bg-color-overlay:#fff;--el-text-color-primary:#303133;--el-text-color-regular:#606266;--el-text-color-secondary:#909399;--el-text-color-placeholder:#a8abb2;--el-text-color-disabled:#c0c4cc;--el-border-color:#dcdfe6;--el-border-color-light:#e4e7ed;--el-border-color-lighter:#ebeef5;--el-border-color-extra-light:#f2f6fc;--el-border-color-dark:#d4d7de;--el-border-color-darker:#cdd0d6;--el-fill-color:#f0f2f5;--el-fill-color-light:#f5f7fa;--el-fill-color-lighter:#fafafa;--el-fill-color-extra-light:#fafcff;--el-fill-color-dark:#ebedf0;--el-fill-color-darker:#e6e8eb;--el-fill-color-blank:#fff;--el-box-shadow:0px 12px 32px 4px #0000000a, 0px 8px 20px #00000014;--el-box-shadow-light:0px 0px 12px #0000001f;--el-box-shadow-lighter:0px 0px 6px #0000001f;--el-box-shadow-dark:0px 16px 48px 16px #00000014, 0px 12px 32px #0000001f, 0px 8px 16px -8px #00000029;--el-disabled-bg-color:var(--el-fill-color-light);--el-disabled-text-color:var(--el-text-color-placeholder);--el-disabled-border-color:var(--el-border-color-light);--el-overlay-color:#000c;--el-overlay-color-light:#000000b3;--el-overlay-color-lighter:#00000080;--el-mask-color:#ffffffe6;--el-mask-color-extra-light:#ffffff4d;--el-border-width:1px;--el-border-style:solid;--el-border-color-hover:var(--el-text-color-disabled);--el-border:var(--el-border-width) var(--el-border-style) var(--el-border-color);--el-svg-monochrome-grey:var(--el-border-color)}.fade-in-linear-enter-active,.fade-in-linear-leave-active{transition:var(--el-transition-fade-linear)}.fade-in-linear-enter-from,.fade-in-linear-leave-to{opacity:0}.el-fade-in-linear-enter-active,.el-fade-in-linear-leave-active{transition:var(--el-transition-fade-linear)}.el-fade-in-linear-enter-from,.el-fade-in-linear-leave-to{opacity:0}.el-fade-in-enter-active,.el-fade-in-leave-active{transition:all var(--el-transition-duration) cubic-bezier(.55, 0, .1, 1)}.el-fade-in-enter-from,.el-fade-in-leave-active{opacity:0}.el-zoom-in-center-enter-active,.el-zoom-in-center-leave-active{transition:all var(--el-transition-duration) cubic-bezier(.55, 0, .1, 1)}.el-zoom-in-center-enter-from,.el-zoom-in-center-leave-active{opacity:0;transform:scaleX(0)}.el-zoom-in-top-enter-active,.el-zoom-in-top-leave-active{opacity:1;transition:var(--el-transition-md-fade);transform-origin:top;transform:scaleY(1)}.el-zoom-in-top-enter-active[data-popper-placement^=top],.el-zoom-in-top-leave-active[data-popper-placement^=top]{transform-origin:bottom}.el-zoom-in-top-enter-from,.el-zoom-in-top-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-bottom-enter-active,.el-zoom-in-bottom-leave-active{opacity:1;transition:var(--el-transition-md-fade);transform-origin:bottom;transform:scaleY(1)}.el-zoom-in-bottom-enter-from,.el-zoom-in-bottom-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-left-enter-active,.el-zoom-in-left-leave-active{opacity:1;transition:var(--el-transition-md-fade);transform-origin:0 0;transform:scale(1)}.el-zoom-in-left-enter-from,.el-zoom-in-left-leave-active{opacity:0;transform:scale(.45)}.collapse-transition{transition:var(--el-transition-duration) height ease-in-out, var(--el-transition-duration) padding-top ease-in-out, var(--el-transition-duration) padding-bottom ease-in-out}.el-collapse-transition-leave-active,.el-collapse-transition-enter-active{transition:var(--el-transition-duration) max-height ease-in-out, var(--el-transition-duration) padding-top ease-in-out, var(--el-transition-duration) padding-bottom ease-in-out}.horizontal-collapse-transition{transition:var(--el-transition-duration) width ease-in-out, var(--el-transition-duration) padding-left ease-in-out, var(--el-transition-duration) padding-right ease-in-out}.el-list-enter-active,.el-list-leave-active{transition:all 1s}.el-list-enter-from,.el-list-leave-to{opacity:0;transform:translateY(-30px)}.el-list-leave-active{position:absolute!important}.el-opacity-transition{transition:opacity var(--el-transition-duration) cubic-bezier(.55, 0, .1, 1)}.el-icon--right{margin-left:5px}.el-icon--left{margin-right:5px}.el-icon{--color:inherit;fill:currentColor;width:1em;height:1em;color:var(--color);line-height:1em;font-size:inherit;justify-content:center;align-items:center;display:inline-flex;position:relative}.el-icon.is-loading{animation:2s linear infinite rotating}.el-icon svg{width:1em;height:1em}.el-badge{--el-badge-bg-color:var(--el-color-danger);--el-badge-radius:10px;--el-badge-font-size:12px;--el-badge-padding:6px;--el-badge-size:18px;vertical-align:middle;width:fit-content;display:inline-block;position:relative}.el-badge__content{background-color:var(--el-badge-bg-color);border-radius:var(--el-badge-radius);color:var(--el-color-white);font-size:var(--el-badge-font-size);height:var(--el-badge-size);padding:0 var(--el-badge-padding);white-space:nowrap;border:1px solid var(--el-bg-color);justify-content:center;align-items:center;display:inline-flex}.el-badge__content.is-fixed{top:0;right:calc(1px + var(--el-badge-size) / 2);z-index:var(--el-index-normal);position:absolute;transform:translateY(-50%)translate(100%)}.el-badge__content.is-fixed.is-dot{right:5px}.el-badge__content.is-dot{border-radius:50%;width:8px;height:8px;padding:0;right:0}.el-badge__content.is-hide-zero{display:none}.el-badge__content--primary{background-color:var(--el-color-primary)}.el-badge__content--success{background-color:var(--el-color-success)}.el-badge__content--warning{background-color:var(--el-color-warning)}.el-badge__content--info{background-color:var(--el-color-info)}.el-badge__content--danger{background-color:var(--el-color-danger)}.el-message{--el-message-bg-color:var(--el-color-info-light-9);--el-message-border-color:var(--el-border-color-lighter);--el-message-padding:11px 15px;--el-message-close-size:16px;--el-message-close-icon-color:var(--el-text-color-placeholder);--el-message-close-hover-color:var(--el-text-color-secondary);box-sizing:border-box;border-radius:var(--el-border-radius-base);border-width:var(--el-border-width);border-style:var(--el-border-style);border-color:var(--el-message-border-color);background-color:var(--el-message-bg-color);width:max-content;max-width:calc(100% - 32px);transition:opacity var(--el-transition-duration), transform .4s, top .4s, bottom .4s;padding:var(--el-message-padding);align-items:center;gap:8px;display:flex;position:fixed}.el-message.is-left{left:16px}.el-message.is-right{right:16px}.el-message.is-center{left:50%;transform:translate(-50%)}.el-message.is-plain{background-color:var(--el-bg-color-overlay);border-color:var(--el-bg-color-overlay);box-shadow:var(--el-box-shadow-light)}.el-message p{margin:0}.el-message--primary{--el-message-bg-color:var(--el-color-primary-light-9);--el-message-border-color:var(--el-color-primary-light-8);--el-message-text-color:var(--el-color-primary)}.el-message--primary .el-message__content{color:var(--el-message-text-color);overflow-wrap:break-word}.el-message .el-message-icon--primary{color:var(--el-message-text-color)}.el-message--success{--el-message-bg-color:var(--el-color-success-light-9);--el-message-border-color:var(--el-color-success-light-8);--el-message-text-color:var(--el-color-success)}.el-message--success .el-message__content{color:var(--el-message-text-color);overflow-wrap:break-word}.el-message .el-message-icon--success{color:var(--el-message-text-color)}.el-message--info{--el-message-bg-color:var(--el-color-info-light-9);--el-message-border-color:var(--el-color-info-light-8);--el-message-text-color:var(--el-color-info)}.el-message--info .el-message__content{color:var(--el-message-text-color);overflow-wrap:break-word}.el-message .el-message-icon--info{color:var(--el-message-text-color)}.el-message--warning{--el-message-bg-color:var(--el-color-warning-light-9);--el-message-border-color:var(--el-color-warning-light-8);--el-message-text-color:var(--el-color-warning)}.el-message--warning .el-message__content{color:var(--el-message-text-color);overflow-wrap:break-word}.el-message .el-message-icon--warning{color:var(--el-message-text-color)}.el-message--error{--el-message-bg-color:var(--el-color-error-light-9);--el-message-border-color:var(--el-color-error-light-8);--el-message-text-color:var(--el-color-error)}.el-message--error .el-message__content{color:var(--el-message-text-color);overflow-wrap:break-word}.el-message .el-message-icon--error{color:var(--el-message-text-color)}.el-message .el-message__badge{position:absolute;top:-8px;right:-8px}.el-message__content{padding:0;font-size:14px;line-height:1}.el-message__content:focus{outline-width:0}.el-message .el-message__closeBtn{cursor:pointer;color:var(--el-message-close-icon-color);font-size:var(--el-message-close-size)}.el-message .el-message__closeBtn:focus{outline-width:0}.el-message .el-message__closeBtn:hover{color:var(--el-message-close-hover-color)}.el-message-fade-enter-from,.el-message-fade-leave-to{opacity:0}.el-message-fade-enter-from.is-left,.el-message-fade-enter-from.is-right,.el-message-fade-leave-to.is-left,.el-message-fade-leave-to.is-right{transform:translateY(-100%)}.el-message-fade-enter-from.is-left.is-bottom,.el-message-fade-enter-from.is-right.is-bottom,.el-message-fade-leave-to.is-left.is-bottom,.el-message-fade-leave-to.is-right.is-bottom{transform:translateY(100%)}.el-message-fade-enter-from.is-center,.el-message-fade-leave-to.is-center{transform:translate(-50%,-100%)}.el-message-fade-enter-from.is-center.is-bottom,.el-message-fade-leave-to.is-center.is-bottom{transform:translate(-50%,100%)}.el-textarea{--el-input-text-color:var(--el-text-color-regular);--el-input-border:var(--el-border);--el-input-hover-border:var(--el-border-color-hover);--el-input-focus-border:var(--el-color-primary);--el-input-transparent-border:0 0 0 1px transparent inset;--el-input-border-color:var(--el-border-color);--el-input-border-radius:var(--el-border-radius-base);--el-input-bg-color:var(--el-fill-color-blank);--el-input-icon-color:var(--el-text-color-placeholder);--el-input-placeholder-color:var(--el-text-color-placeholder);--el-input-hover-border-color:var(--el-border-color-hover);--el-input-clear-hover-color:var(--el-text-color-secondary);--el-input-focus-border-color:var(--el-color-primary);--el-input-width:100%;vertical-align:bottom;width:100%;font-size:var(--el-font-size-base);display:inline-block;position:relative}.el-textarea__inner{resize:vertical;box-sizing:border-box;width:100%;line-height:1.5;font-size:inherit;color:var(--el-input-text-color,var(--el-text-color-regular));background-color:var(--el-input-bg-color,var(--el-fill-color-blank));-webkit-appearance:none;box-shadow:0 0 0 1px var(--el-input-border-color,var(--el-border-color)) inset;border-radius:var(--el-input-border-radius,var(--el-border-radius-base));transition:var(--el-transition-box-shadow);background-image:none;border:none;padding:5px 11px;font-family:inherit;display:block;position:relative}.el-textarea__inner.is-clearable{padding:5px 26px 5px 11px}.el-textarea__inner::placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-textarea__inner:hover{box-shadow:0 0 0 1px var(--el-input-hover-border-color) inset}.el-textarea__inner:focus{box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset;outline:none}.el-textarea__clear{color:var(--el-input-icon-color);cursor:pointer;font-size:14px;position:absolute;top:15px;right:11px;transform:translateY(-50%)}.el-textarea__clear:hover{color:var(--el-input-clear-hover-color)}.el-textarea .el-input__count{color:var(--el-color-info);background:var(--el-fill-color-blank);font-size:12px;line-height:14px;position:absolute;bottom:5px;right:10px}.el-textarea .el-input__count.is-outside{top:100%;right:0;bottom:unset;background:0 0;padding-top:2px;line-height:1;position:absolute}.el-textarea.is-disabled .el-textarea__inner{box-shadow:0 0 0 1px var(--el-disabled-border-color) inset;background-color:var(--el-disabled-bg-color);color:var(--el-disabled-text-color);cursor:not-allowed}.el-textarea.is-disabled .el-textarea__inner::placeholder{color:var(--el-text-color-placeholder)}.el-textarea.is-exceed .el-textarea__inner{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-textarea.is-exceed .el-input__count{color:var(--el-color-danger)}.el-input{--el-input-text-color:var(--el-text-color-regular);--el-input-border:var(--el-border);--el-input-hover-border:var(--el-border-color-hover);--el-input-focus-border:var(--el-color-primary);--el-input-transparent-border:0 0 0 1px transparent inset;--el-input-border-color:var(--el-border-color);--el-input-border-radius:var(--el-border-radius-base);--el-input-bg-color:var(--el-fill-color-blank);--el-input-icon-color:var(--el-text-color-placeholder);--el-input-placeholder-color:var(--el-text-color-placeholder);--el-input-hover-border-color:var(--el-border-color-hover);--el-input-clear-hover-color:var(--el-text-color-secondary);--el-input-focus-border-color:var(--el-color-primary);--el-input-width:100%;--el-input-height:var(--el-component-size);font-size:var(--el-font-size-base);width:var(--el-input-width);line-height:var(--el-input-height);box-sizing:border-box;vertical-align:middle;display:inline-flex;position:relative}.el-input::-webkit-scrollbar{z-index:11;width:6px}.el-input::-webkit-scrollbar:horizontal{height:6px}.el-input::-webkit-scrollbar-thumb{background:var(--el-text-color-disabled);border-radius:5px;width:6px}.el-input::-webkit-scrollbar-corner{background:var(--el-fill-color-blank)}.el-input::-webkit-scrollbar-track{background:var(--el-fill-color-blank)}.el-input::-webkit-scrollbar-track-piece{background:var(--el-fill-color-blank);width:6px}.el-input .el-input__clear,.el-input .el-input__password{color:var(--el-input-icon-color);cursor:pointer;font-size:14px}.el-input .el-input__clear:hover,.el-input .el-input__password:hover{color:var(--el-input-clear-hover-color)}.el-input .el-input__count{height:100%;color:var(--el-color-info);align-items:center;font-size:12px;display:inline-flex}.el-input .el-input__count .el-input__count-inner{background:var(--el-fill-color-blank);line-height:initial;padding-left:8px;display:inline-block}.el-input .el-input__count.is-outside{height:unset;padding-top:2px;position:absolute;top:100%;right:0}.el-input .el-input__count.is-outside .el-input__count-inner{background:0 0;padding-left:0;line-height:1}.el-input__wrapper{background-color:var(--el-input-bg-color,var(--el-fill-color-blank));border-radius:var(--el-input-border-radius,var(--el-border-radius-base));cursor:text;transition:var(--el-transition-box-shadow);box-shadow:0 0 0 1px var(--el-input-border-color,var(--el-border-color)) inset;background-image:none;flex-grow:1;justify-content:center;align-items:center;padding:1px 11px;display:inline-flex;transform:translate(0)}.el-input__wrapper:hover{box-shadow:0 0 0 1px var(--el-input-hover-border-color) inset}.el-input__wrapper.is-focus{box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset}.el-input{--el-input-inner-height:calc(var(--el-input-height,32px) - 2px)}.el-input__inner{-webkit-appearance:none;width:100%;color:var(--el-input-text-color,var(--el-text-color-regular));font-size:inherit;height:var(--el-input-inner-height);line-height:var(--el-input-inner-height);box-sizing:border-box;background:0 0;border:none;outline:none;flex-grow:1;padding:0}.el-input__inner:focus{outline:none}.el-input__inner::placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-input__inner[type=password]::-ms-reveal{display:none}.el-input__inner[type=number]{line-height:1}.el-input__prefix{white-space:nowrap;height:100%;line-height:var(--el-input-inner-height);text-align:center;color:var(--el-input-icon-color,var(--el-text-color-placeholder));transition:all var(--el-transition-duration);pointer-events:none;flex-wrap:nowrap;flex-shrink:0;display:inline-flex}.el-input__prefix-inner{pointer-events:all;justify-content:center;align-items:center;display:inline-flex}.el-input__prefix-inner>:last-child{margin-right:8px}.el-input__prefix-inner>:first-child,.el-input__prefix-inner>:first-child.el-input__icon{margin-left:0}.el-input__suffix{white-space:nowrap;height:100%;line-height:var(--el-input-inner-height);text-align:center;color:var(--el-input-icon-color,var(--el-text-color-placeholder));transition:all var(--el-transition-duration);pointer-events:none;flex-wrap:nowrap;flex-shrink:0;display:inline-flex}.el-input__suffix-inner{pointer-events:all;justify-content:center;align-items:center;display:inline-flex}.el-input__suffix-inner>:first-child{margin-left:8px}.el-input .el-input__icon{height:inherit;line-height:inherit;transition:all var(--el-transition-duration);justify-content:center;align-items:center;margin-left:8px;display:flex}.el-input .el-input__clear{transition:color var(--el-transition-duration)}.el-input__validateIcon{pointer-events:none}.el-input.is-active .el-input__wrapper{box-shadow:0 0 0 1px var(--el-input-focus-color, ) inset}.el-input.is-disabled{cursor:not-allowed}.el-input.is-disabled .el-input__wrapper{background-color:var(--el-disabled-bg-color);cursor:not-allowed;box-shadow:0 0 0 1px var(--el-disabled-border-color) inset}.el-input.is-disabled .el-input__inner{color:var(--el-disabled-text-color);-webkit-text-fill-color:var(--el-disabled-text-color);cursor:not-allowed}.el-input.is-disabled .el-input__inner::placeholder{color:var(--el-text-color-placeholder)}.el-input.is-disabled .el-input__icon{cursor:not-allowed}.el-input.is-disabled .el-input__prefix-inner,.el-input.is-disabled .el-input__suffix-inner{pointer-events:none}.el-input.is-exceed .el-input__wrapper{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-input.is-exceed .el-input__suffix .el-input__count{color:var(--el-color-danger)}.el-input--large{--el-input-height:var(--el-component-size-large);font-size:14px}.el-input--large .el-input__wrapper{padding:1px 15px}.el-input--large{--el-input-inner-height:calc(var(--el-input-height,40px) - 2px)}.el-input--small{--el-input-height:var(--el-component-size-small);font-size:12px}.el-input--small .el-input__wrapper{padding:1px 7px}.el-input--small{--el-input-inner-height:calc(var(--el-input-height,24px) - 2px)}.el-input-group{align-items:stretch;width:100%;display:inline-flex}.el-input-group__append,.el-input-group__prepend{background-color:var(--el-fill-color-light);color:var(--el-color-info);border-radius:var(--el-input-border-radius);white-space:nowrap;justify-content:center;align-items:center;min-height:100%;padding:0 20px;display:inline-flex;position:relative}.el-input-group__append:focus,.el-input-group__prepend:focus{outline:none}.el-input-group__append .el-select,.el-input-group__append .el-button,.el-input-group__prepend .el-select,.el-input-group__prepend .el-button{flex:1;margin:0 -20px;display:inline-block}.el-input-group__append button.el-button,.el-input-group__append button.el-button:hover,.el-input-group__append div.el-select .el-select__wrapper,.el-input-group__append div.el-select:hover .el-select__wrapper,.el-input-group__prepend button.el-button,.el-input-group__prepend button.el-button:hover,.el-input-group__prepend div.el-select .el-select__wrapper,.el-input-group__prepend div.el-select:hover .el-select__wrapper{color:inherit;background-color:#0000;border-color:#0000}.el-input-group__append .el-button,.el-input-group__append .el-input,.el-input-group__prepend .el-button,.el-input-group__prepend .el-input{font-size:inherit}.el-input-group__prepend{box-shadow:1px 0 0 0 var(--el-input-border-color) inset, 0 1px 0 0 var(--el-input-border-color) inset, 0 -1px 0 0 var(--el-input-border-color) inset;border-right:0;border-top-right-radius:0;border-bottom-right-radius:0}.el-input-group__append{box-shadow:0 1px 0 0 var(--el-input-border-color) inset, 0 -1px 0 0 var(--el-input-border-color) inset, -1px 0 0 0 var(--el-input-border-color) inset;border-left:0;border-top-left-radius:0;border-bottom-left-radius:0}.el-input-group--prepend>.el-input__wrapper{border-top-left-radius:0;border-bottom-left-radius:0}.el-input-group--prepend .el-input-group__prepend .el-select .el-select__wrapper{box-shadow:1px 0 0 0 var(--el-input-border-color) inset, 0 1px 0 0 var(--el-input-border-color) inset, 0 -1px 0 0 var(--el-input-border-color) inset;border-top-right-radius:0;border-bottom-right-radius:0}.el-input-group--append>.el-input__wrapper{border-top-right-radius:0;border-bottom-right-radius:0}.el-input-group--append .el-input-group__append .el-select .el-select__wrapper{box-shadow:0 1px 0 0 var(--el-input-border-color) inset, 0 -1px 0 0 var(--el-input-border-color) inset, -1px 0 0 0 var(--el-input-border-color) inset;border-top-left-radius:0;border-bottom-left-radius:0}.el-input-hidden{display:none!important}.el-button{--el-button-font-weight:var(--el-font-weight-primary);--el-button-border-color:var(--el-border-color);--el-button-bg-color:var(--el-fill-color-blank);--el-button-text-color:var(--el-text-color-regular);--el-button-disabled-text-color:var(--el-disabled-text-color);--el-button-disabled-bg-color:var(--el-fill-color-blank);--el-button-disabled-border-color:var(--el-border-color-light);--el-button-divide-border-color:#ffffff80;--el-button-hover-text-color:var(--el-color-primary);--el-button-hover-bg-color:var(--el-color-primary-light-9);--el-button-hover-border-color:var(--el-color-primary-light-7);--el-button-active-text-color:var(--el-button-hover-text-color);--el-button-active-border-color:var(--el-color-primary);--el-button-active-bg-color:var(--el-button-hover-bg-color);--el-button-outline-color:var(--el-color-primary-light-5);--el-button-hover-link-text-color:var(--el-text-color-secondary);--el-button-active-color:var(--el-text-color-primary);white-space:nowrap;cursor:pointer;height:32px;color:var(--el-button-text-color);text-align:center;box-sizing:border-box;line-height:1;font-weight:var(--el-button-font-weight);user-select:none;vertical-align:middle;-webkit-appearance:none;background-color:var(--el-button-bg-color);border:var(--el-border);border-color:var(--el-button-border-color);outline:none;justify-content:center;align-items:center;transition:all .1s;display:inline-flex}.el-button:hover{color:var(--el-button-hover-text-color);border-color:var(--el-button-hover-border-color);background-color:var(--el-button-hover-bg-color);outline:none}.el-button:active{color:var(--el-button-active-text-color);border-color:var(--el-button-active-border-color);background-color:var(--el-button-active-bg-color);outline:none}.el-button:focus-visible{outline:2px solid var(--el-button-outline-color);outline-offset:1px;transition:outline-offset,outline}.el-button>span{align-items:center;display:inline-flex}.el-button+.el-button{margin-left:12px}.el-button{font-size:var(--el-font-size-base);border-radius:var(--el-border-radius-base);padding:8px 15px}.el-button.is-round{padding:8px 15px}.el-button::-moz-focus-inner{border:0}.el-button [class*=el-icon]+span{margin-left:6px}.el-button [class*=el-icon] svg{vertical-align:bottom}.el-button.is-plain{--el-button-hover-text-color:var(--el-color-primary);--el-button-hover-bg-color:var(--el-fill-color-blank);--el-button-hover-border-color:var(--el-color-primary)}.el-button.is-active{color:var(--el-button-active-text-color);border-color:var(--el-button-active-border-color);background-color:var(--el-button-active-bg-color);outline:none}.el-button.is-disabled,.el-button.is-disabled:hover{color:var(--el-button-disabled-text-color);cursor:not-allowed;background-image:none;background-color:var(--el-button-disabled-bg-color);border-color:var(--el-button-disabled-border-color)}.el-button.is-loading{pointer-events:none;position:relative}.el-button.is-loading:before{z-index:1;pointer-events:none;content:"";border-radius:inherit;background-color:var(--el-mask-color-extra-light);position:absolute;inset:-1px}.el-button.is-round{border-radius:var(--el-border-radius-round)}.el-button.is-dashed{--el-button-hover-text-color:var(--el-color-primary);--el-button-hover-bg-color:var(--el-fill-color-blank);--el-button-hover-border-color:var(--el-color-primary);border-style:dashed}.el-button.is-circle{border-radius:50%;width:32px;padding:8px}.el-button.is-text{color:var(--el-button-text-color);background-color:#0000;border:0 solid #0000}.el-button.is-text.is-disabled{color:var(--el-button-disabled-text-color);background-color:#0000!important}.el-button.is-text:not(.is-disabled):hover{background-color:var(--el-fill-color-light)}.el-button.is-text:not(.is-disabled):focus-visible{outline:2px solid var(--el-button-outline-color);outline-offset:1px;transition:outline-offset,outline}.el-button.is-text:not(.is-disabled):active{background-color:var(--el-fill-color)}.el-button.is-text:not(.is-disabled).is-has-bg{background-color:var(--el-fill-color-light)}.el-button.is-text:not(.is-disabled).is-has-bg:hover{background-color:var(--el-fill-color)}.el-button.is-text:not(.is-disabled).is-has-bg:active{background-color:var(--el-fill-color-dark)}.el-button__text--expand{letter-spacing:.3em;margin-right:-.3em}.el-button.is-link{color:var(--el-button-text-color);background:0 0;border-color:#0000;height:auto;padding:2px}.el-button.is-link:hover{color:var(--el-button-hover-link-text-color)}.el-button.is-link.is-disabled{color:var(--el-button-disabled-text-color);background-color:#0000!important;border-color:#0000!important}.el-button.is-link:not(.is-disabled):hover{background-color:#0000;border-color:#0000}.el-button.is-link:not(.is-disabled):active{color:var(--el-button-active-color);background-color:#0000;border-color:#0000}.el-button--text{color:var(--el-color-primary);background:0 0;border-color:#0000;padding-left:0;padding-right:0}.el-button--text.is-disabled{color:var(--el-button-disabled-text-color);background-color:#0000!important;border-color:#0000!important}.el-button--text:not(.is-disabled):hover{color:var(--el-color-primary-light-3);background-color:#0000;border-color:#0000}.el-button--text:not(.is-disabled):active{color:var(--el-color-primary-dark-2);background-color:#0000;border-color:#0000}.el-button__link--expand{letter-spacing:.3em;margin-right:-.3em}.el-button--primary{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-primary);--el-button-border-color:var(--el-color-primary);--el-button-outline-color:var(--el-color-primary-light-5);--el-button-active-color:var(--el-color-primary-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-primary-light-5);--el-button-hover-bg-color:var(--el-color-primary-light-3);--el-button-hover-border-color:var(--el-color-primary-light-3);--el-button-active-bg-color:var(--el-color-primary-dark-2);--el-button-active-border-color:var(--el-color-primary-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-primary-light-5);--el-button-disabled-border-color:var(--el-color-primary-light-5)}.el-button--primary.is-plain,.el-button--primary.is-text,.el-button--primary.is-link{--el-button-text-color:var(--el-color-primary);--el-button-bg-color:var(--el-color-primary-light-9);--el-button-border-color:var(--el-color-primary-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-primary);--el-button-hover-border-color:var(--el-color-primary);--el-button-active-text-color:var(--el-color-white)}.el-button--primary.is-plain.is-disabled,.el-button--primary.is-plain.is-disabled:hover,.el-button--primary.is-plain.is-disabled:focus,.el-button--primary.is-plain.is-disabled:active,.el-button--primary.is-text.is-disabled,.el-button--primary.is-text.is-disabled:hover,.el-button--primary.is-text.is-disabled:focus,.el-button--primary.is-text.is-disabled:active,.el-button--primary.is-link.is-disabled,.el-button--primary.is-link.is-disabled:hover,.el-button--primary.is-link.is-disabled:focus,.el-button--primary.is-link.is-disabled:active{color:var(--el-color-primary-light-5);background-color:var(--el-color-primary-light-9);border-color:var(--el-color-primary-light-8)}.el-button--primary.is-dashed{--el-button-text-color:var(--el-color-primary);--el-button-bg-color:var(--el-color-primary-light-9);--el-button-border-color:var(--el-color-primary-light-5);--el-button-hover-text-color:var(--el-color-primary);--el-button-hover-bg-color:var(--el-color-primary-light-9);--el-button-hover-border-color:var(--el-color-primary-light-3);--el-button-active-text-color:var(--el-color-primary-dark-2);--el-button-active-bg-color:var(--el-color-primary-light-9);--el-button-active-border-color:var(--el-color-primary-dark-2)}.el-button--primary.is-dashed.is-disabled,.el-button--primary.is-dashed.is-disabled:hover,.el-button--primary.is-dashed.is-disabled:focus,.el-button--primary.is-dashed.is-disabled:active{color:var(--el-color-primary-light-5);background-color:var(--el-color-primary-light-9);border-color:var(--el-color-primary-light-8)}.el-button--success{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-success);--el-button-border-color:var(--el-color-success);--el-button-outline-color:var(--el-color-success-light-5);--el-button-active-color:var(--el-color-success-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-success-light-5);--el-button-hover-bg-color:var(--el-color-success-light-3);--el-button-hover-border-color:var(--el-color-success-light-3);--el-button-active-bg-color:var(--el-color-success-dark-2);--el-button-active-border-color:var(--el-color-success-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-success-light-5);--el-button-disabled-border-color:var(--el-color-success-light-5)}.el-button--success.is-plain,.el-button--success.is-text,.el-button--success.is-link{--el-button-text-color:var(--el-color-success);--el-button-bg-color:var(--el-color-success-light-9);--el-button-border-color:var(--el-color-success-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-success);--el-button-hover-border-color:var(--el-color-success);--el-button-active-text-color:var(--el-color-white)}.el-button--success.is-plain.is-disabled,.el-button--success.is-plain.is-disabled:hover,.el-button--success.is-plain.is-disabled:focus,.el-button--success.is-plain.is-disabled:active,.el-button--success.is-text.is-disabled,.el-button--success.is-text.is-disabled:hover,.el-button--success.is-text.is-disabled:focus,.el-button--success.is-text.is-disabled:active,.el-button--success.is-link.is-disabled,.el-button--success.is-link.is-disabled:hover,.el-button--success.is-link.is-disabled:focus,.el-button--success.is-link.is-disabled:active{color:var(--el-color-success-light-5);background-color:var(--el-color-success-light-9);border-color:var(--el-color-success-light-8)}.el-button--success.is-dashed{--el-button-text-color:var(--el-color-success);--el-button-bg-color:var(--el-color-success-light-9);--el-button-border-color:var(--el-color-success-light-5);--el-button-hover-text-color:var(--el-color-success);--el-button-hover-bg-color:var(--el-color-success-light-9);--el-button-hover-border-color:var(--el-color-success-light-3);--el-button-active-text-color:var(--el-color-success-dark-2);--el-button-active-bg-color:var(--el-color-success-light-9);--el-button-active-border-color:var(--el-color-success-dark-2)}.el-button--success.is-dashed.is-disabled,.el-button--success.is-dashed.is-disabled:hover,.el-button--success.is-dashed.is-disabled:focus,.el-button--success.is-dashed.is-disabled:active{color:var(--el-color-success-light-5);background-color:var(--el-color-success-light-9);border-color:var(--el-color-success-light-8)}.el-button--warning{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-warning);--el-button-border-color:var(--el-color-warning);--el-button-outline-color:var(--el-color-warning-light-5);--el-button-active-color:var(--el-color-warning-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-warning-light-5);--el-button-hover-bg-color:var(--el-color-warning-light-3);--el-button-hover-border-color:var(--el-color-warning-light-3);--el-button-active-bg-color:var(--el-color-warning-dark-2);--el-button-active-border-color:var(--el-color-warning-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-warning-light-5);--el-button-disabled-border-color:var(--el-color-warning-light-5)}.el-button--warning.is-plain,.el-button--warning.is-text,.el-button--warning.is-link{--el-button-text-color:var(--el-color-warning);--el-button-bg-color:var(--el-color-warning-light-9);--el-button-border-color:var(--el-color-warning-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-warning);--el-button-hover-border-color:var(--el-color-warning);--el-button-active-text-color:var(--el-color-white)}.el-button--warning.is-plain.is-disabled,.el-button--warning.is-plain.is-disabled:hover,.el-button--warning.is-plain.is-disabled:focus,.el-button--warning.is-plain.is-disabled:active,.el-button--warning.is-text.is-disabled,.el-button--warning.is-text.is-disabled:hover,.el-button--warning.is-text.is-disabled:focus,.el-button--warning.is-text.is-disabled:active,.el-button--warning.is-link.is-disabled,.el-button--warning.is-link.is-disabled:hover,.el-button--warning.is-link.is-disabled:focus,.el-button--warning.is-link.is-disabled:active{color:var(--el-color-warning-light-5);background-color:var(--el-color-warning-light-9);border-color:var(--el-color-warning-light-8)}.el-button--warning.is-dashed{--el-button-text-color:var(--el-color-warning);--el-button-bg-color:var(--el-color-warning-light-9);--el-button-border-color:var(--el-color-warning-light-5);--el-button-hover-text-color:var(--el-color-warning);--el-button-hover-bg-color:var(--el-color-warning-light-9);--el-button-hover-border-color:var(--el-color-warning-light-3);--el-button-active-text-color:var(--el-color-warning-dark-2);--el-button-active-bg-color:var(--el-color-warning-light-9);--el-button-active-border-color:var(--el-color-warning-dark-2)}.el-button--warning.is-dashed.is-disabled,.el-button--warning.is-dashed.is-disabled:hover,.el-button--warning.is-dashed.is-disabled:focus,.el-button--warning.is-dashed.is-disabled:active{color:var(--el-color-warning-light-5);background-color:var(--el-color-warning-light-9);border-color:var(--el-color-warning-light-8)}.el-button--danger{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-danger);--el-button-border-color:var(--el-color-danger);--el-button-outline-color:var(--el-color-danger-light-5);--el-button-active-color:var(--el-color-danger-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-danger-light-5);--el-button-hover-bg-color:var(--el-color-danger-light-3);--el-button-hover-border-color:var(--el-color-danger-light-3);--el-button-active-bg-color:var(--el-color-danger-dark-2);--el-button-active-border-color:var(--el-color-danger-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-danger-light-5);--el-button-disabled-border-color:var(--el-color-danger-light-5)}.el-button--danger.is-plain,.el-button--danger.is-text,.el-button--danger.is-link{--el-button-text-color:var(--el-color-danger);--el-button-bg-color:var(--el-color-danger-light-9);--el-button-border-color:var(--el-color-danger-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-danger);--el-button-hover-border-color:var(--el-color-danger);--el-button-active-text-color:var(--el-color-white)}.el-button--danger.is-plain.is-disabled,.el-button--danger.is-plain.is-disabled:hover,.el-button--danger.is-plain.is-disabled:focus,.el-button--danger.is-plain.is-disabled:active,.el-button--danger.is-text.is-disabled,.el-button--danger.is-text.is-disabled:hover,.el-button--danger.is-text.is-disabled:focus,.el-button--danger.is-text.is-disabled:active,.el-button--danger.is-link.is-disabled,.el-button--danger.is-link.is-disabled:hover,.el-button--danger.is-link.is-disabled:focus,.el-button--danger.is-link.is-disabled:active{color:var(--el-color-danger-light-5);background-color:var(--el-color-danger-light-9);border-color:var(--el-color-danger-light-8)}.el-button--danger.is-dashed{--el-button-text-color:var(--el-color-danger);--el-button-bg-color:var(--el-color-danger-light-9);--el-button-border-color:var(--el-color-danger-light-5);--el-button-hover-text-color:var(--el-color-danger);--el-button-hover-bg-color:var(--el-color-danger-light-9);--el-button-hover-border-color:var(--el-color-danger-light-3);--el-button-active-text-color:var(--el-color-danger-dark-2);--el-button-active-bg-color:var(--el-color-danger-light-9);--el-button-active-border-color:var(--el-color-danger-dark-2)}.el-button--danger.is-dashed.is-disabled,.el-button--danger.is-dashed.is-disabled:hover,.el-button--danger.is-dashed.is-disabled:focus,.el-button--danger.is-dashed.is-disabled:active{color:var(--el-color-danger-light-5);background-color:var(--el-color-danger-light-9);border-color:var(--el-color-danger-light-8)}.el-button--info{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-info);--el-button-border-color:var(--el-color-info);--el-button-outline-color:var(--el-color-info-light-5);--el-button-active-color:var(--el-color-info-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-info-light-5);--el-button-hover-bg-color:var(--el-color-info-light-3);--el-button-hover-border-color:var(--el-color-info-light-3);--el-button-active-bg-color:var(--el-color-info-dark-2);--el-button-active-border-color:var(--el-color-info-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-info-light-5);--el-button-disabled-border-color:var(--el-color-info-light-5)}.el-button--info.is-plain,.el-button--info.is-text,.el-button--info.is-link{--el-button-text-color:var(--el-color-info);--el-button-bg-color:var(--el-color-info-light-9);--el-button-border-color:var(--el-color-info-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-info);--el-button-hover-border-color:var(--el-color-info);--el-button-active-text-color:var(--el-color-white)}.el-button--info.is-plain.is-disabled,.el-button--info.is-plain.is-disabled:hover,.el-button--info.is-plain.is-disabled:focus,.el-button--info.is-plain.is-disabled:active,.el-button--info.is-text.is-disabled,.el-button--info.is-text.is-disabled:hover,.el-button--info.is-text.is-disabled:focus,.el-button--info.is-text.is-disabled:active,.el-button--info.is-link.is-disabled,.el-button--info.is-link.is-disabled:hover,.el-button--info.is-link.is-disabled:focus,.el-button--info.is-link.is-disabled:active{color:var(--el-color-info-light-5);background-color:var(--el-color-info-light-9);border-color:var(--el-color-info-light-8)}.el-button--info.is-dashed{--el-button-text-color:var(--el-color-info);--el-button-bg-color:var(--el-color-info-light-9);--el-button-border-color:var(--el-color-info-light-5);--el-button-hover-text-color:var(--el-color-info);--el-button-hover-bg-color:var(--el-color-info-light-9);--el-button-hover-border-color:var(--el-color-info-light-3);--el-button-active-text-color:var(--el-color-info-dark-2);--el-button-active-bg-color:var(--el-color-info-light-9);--el-button-active-border-color:var(--el-color-info-dark-2)}.el-button--info.is-dashed.is-disabled,.el-button--info.is-dashed.is-disabled:hover,.el-button--info.is-dashed.is-disabled:focus,.el-button--info.is-dashed.is-disabled:active{color:var(--el-color-info-light-5);background-color:var(--el-color-info-light-9);border-color:var(--el-color-info-light-8)}.el-button--large{--el-button-size:40px;height:var(--el-button-size)}.el-button--large [class*=el-icon]+span{margin-left:8px}.el-button--large{font-size:var(--el-font-size-base);border-radius:var(--el-border-radius-base);padding:12px 19px}.el-button--large.is-round{padding:12px 19px}.el-button--large.is-circle{width:var(--el-button-size);padding:12px}.el-button--small{--el-button-size:24px;height:var(--el-button-size)}.el-button--small [class*=el-icon]+span{margin-left:4px}.el-button--small{border-radius:calc(var(--el-border-radius-base) - 1px);padding:5px 11px;font-size:12px}.el-button--small.is-round{padding:5px 11px}.el-button--small.is-circle{width:var(--el-button-size);padding:5px}.el-overlay{z-index:2000;background-color:var(--el-overlay-color-lighter);height:100%;position:fixed;inset:0;overflow:auto}.el-overlay .el-overlay-root{height:0}:root{--el-popup-modal-bg-color:var(--el-color-black);--el-popup-modal-opacity:.5}.v-modal-enter{animation:v-modal-in var(--el-transition-duration-fast) ease}.v-modal-leave{animation:v-modal-out var(--el-transition-duration-fast) ease forwards}@keyframes v-modal-in{0%{opacity:0}}@keyframes v-modal-out{to{opacity:0}}.v-modal{width:100%;height:100%;opacity:var(--el-popup-modal-opacity);background:var(--el-popup-modal-bg-color);position:fixed;top:0;left:0}.el-popup-parent--hidden{overflow:hidden}.el-message-box{--el-messagebox-title-color:var(--el-text-color-primary);--el-messagebox-width:420px;--el-messagebox-border-radius:4px;--el-messagebox-box-shadow:var(--el-box-shadow);--el-messagebox-font-size:var(--el-font-size-large);--el-messagebox-content-font-size:var(--el-font-size-base);--el-messagebox-content-color:var(--el-text-color-regular);--el-messagebox-error-font-size:12px;--el-messagebox-padding-primary:12px;--el-messagebox-font-line-height:var(--el-font-line-height-primary);max-width:var(--el-messagebox-width);width:100%;padding:var(--el-messagebox-padding-primary);vertical-align:middle;background-color:var(--el-bg-color);border-radius:var(--el-messagebox-border-radius);font-size:var(--el-messagebox-font-size);box-shadow:var(--el-messagebox-box-shadow);text-align:left;backface-visibility:hidden;box-sizing:border-box;overflow-wrap:break-word;display:inline-block;position:relative;overflow:hidden}.el-message-box:focus{outline:none!important}.is-message-box .el-overlay-message-box{text-align:center;padding:16px;position:fixed;inset:0;overflow:auto}.is-message-box .el-overlay-message-box:after{content:"";vertical-align:middle;width:0;height:100%;display:inline-block}.el-message-box.is-draggable .el-message-box__header{cursor:move;user-select:none}.el-message-box__header{padding-bottom:var(--el-messagebox-padding-primary)}.el-message-box__header.show-close{padding-right:calc(var(--el-messagebox-padding-primary) + var(--el-message-close-size,16px))}.el-message-box__title{font-size:var(--el-messagebox-font-size);line-height:var(--el-messagebox-font-line-height);color:var(--el-messagebox-title-color)}.el-message-box__headerbtn{width:40px;height:40px;font-size:var(--el-message-close-size,16px);cursor:pointer;background:0 0;border:none;outline:none;padding:0;position:absolute;top:0;right:0}.el-message-box__headerbtn .el-message-box__close{color:var(--el-color-info);font-size:inherit}.el-message-box__headerbtn:focus .el-message-box__close,.el-message-box__headerbtn:hover .el-message-box__close{color:var(--el-color-primary)}.el-message-box__content{color:var(--el-messagebox-content-color);font-size:var(--el-messagebox-content-font-size)}.el-message-box__container{align-items:center;gap:12px;display:flex}.el-message-box__input{padding-top:12px}.el-message-box__input div.invalid>input,.el-message-box__input div.invalid>input:focus{border-color:var(--el-color-error)}.el-message-box__status{font-size:24px}.el-message-box__status.el-message-box-icon--primary{--el-messagebox-color:var(--el-color-primary);color:var(--el-messagebox-color)}.el-message-box__status.el-message-box-icon--success{--el-messagebox-color:var(--el-color-success);color:var(--el-messagebox-color)}.el-message-box__status.el-message-box-icon--info{--el-messagebox-color:var(--el-color-info);color:var(--el-messagebox-color)}.el-message-box__status.el-message-box-icon--warning{--el-messagebox-color:var(--el-color-warning);color:var(--el-messagebox-color)}.el-message-box__status.el-message-box-icon--error{--el-messagebox-color:var(--el-color-error);color:var(--el-messagebox-color)}.el-message-box__message{min-width:0;margin:0}.el-message-box__message p{line-height:var(--el-messagebox-font-line-height);margin:0}.el-message-box__errormsg{color:var(--el-color-error);font-size:var(--el-messagebox-error-font-size);line-height:var(--el-messagebox-font-line-height)}.el-message-box__btns{padding-top:var(--el-messagebox-padding-primary);flex-wrap:wrap;justify-content:flex-end;align-items:center;display:flex}.el-message-box--center .el-message-box__title{justify-content:center;align-items:center;gap:6px;display:flex}.el-message-box--center .el-message-box__status{font-size:inherit}.el-message-box--center .el-message-box__btns,.el-message-box--center .el-message-box__container{justify-content:center}.el-message-box-parent--hidden{overflow:hidden}.fade-in-linear-enter-active .el-overlay-message-box{animation:msgbox-fade-in var(--el-transition-duration)}.fade-in-linear-leave-active .el-overlay-message-box{animation:msgbox-fade-in var(--el-transition-duration) reverse}@keyframes msgbox-fade-in{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translate(0)}}:root{--brand-primary:#00a8cc;--brand-primary-hover:#0091b0;--brand-primary-active:#007a99;--brand-primary-light:#e6f9ff;--brand-accent:#00d4ff;--brand-glow:#00d4ff66;--status-success:#00c853;--status-success-bg:#e8f5e9;--status-success-glow:#00c85380;--status-warning:#ff9800;--status-warning-bg:#fff3e0;--status-warning-glow:#ff980080;--status-danger:#ff5252;--status-danger-bg:#ffebee;--status-danger-glow:#ff525280;--status-info:#2196f3;--status-info-bg:#e3f2fd;--status-neutral:#9e9e9e;--status-neutral-bg:#f5f5f5;--chart-color-1:#00a8cc;--chart-color-2:#00c853;--chart-color-3:#ff9800;--chart-color-4:#ff5252;--chart-color-5:#7c4dff;--chart-color-6:#18ffff;--chart-color-7:#ff6e40;--chart-color-8:#69f0ae;--chart-tooltip-bg:#fffffff2;--chart-axis:#8b96a3;--chart-grid:#eef2f7}:root[data-theme=dark]{--brand-primary:#00d4ff;--brand-primary-hover:#3df;--brand-primary-active:#66e6ff;--brand-primary-light:#00d4ff14;--brand-accent:#00d4ff;--brand-glow:#00d4ff99;--status-success:#00e676;--status-success-bg:#00e6761f;--status-success-glow:#00e67699;--status-warning:#ffb74d;--status-warning-bg:#ffb74d1f;--status-warning-glow:#ffb74d99;--status-danger:#ff5252;--status-danger-bg:#ff52521f;--status-danger-glow:#ff525299;--status-info:#64b5f6;--status-info-bg:#64b5f61f;--status-neutral:#757575;--status-neutral-bg:#7575751f;--chart-color-1:#00d4ff;--chart-color-2:#00e676;--chart-color-3:#ffb74d;--chart-color-4:#ff5252;--chart-color-5:#b388ff;--chart-color-6:#84ffff;--chart-color-7:#ff6e40;--chart-color-8:#69f0ae;--chart-tooltip-bg:#161b22f2;--chart-axis:#5a6573;--chart-grid:#21262d}:root{--font-family-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-family-mono:"Cascadia Mono", "SFMono-Regular", Consolas, "Liberation Mono", monospace;--font-family-display:-apple-system, sans-serif;--font-size-xs:11px;--font-size-sm:12px;--font-size-base:13px;--font-size-md:14px;--font-size-lg:16px;--font-size-xl:18px;--font-size-2xl:22px;--font-size-3xl:28px;--font-size-4xl:36px;--font-weight-regular:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--line-height-tight:1.2;--line-height-base:1.5;--line-height-relaxed:1.625;--letter-spacing-tight:-.01em;--letter-spacing-normal:0;--letter-spacing-wide:.02em;--letter-spacing-wider:.08em;--spacing-0:0;--spacing-1:2px;--spacing-2:4px;--spacing-3:8px;--spacing-4:12px;--spacing-5:16px;--spacing-6:20px;--spacing-7:24px;--spacing-8:32px;--spacing-9:40px;--spacing-10:48px;--spacing-page-x:var(--spacing-3);--spacing-page-y:var(--spacing-3);--spacing-card-padding:var(--spacing-5);--spacing-section-gap:var(--spacing-6);--spacing-element-gap:var(--spacing-3);--layout-tabbar-height:32px;--layout-sidebar-width:200px;--layout-sidebar-collapsed-width:64px;--radius-none:0;--radius-sm:4px;--radius-base:6px;--radius-md:8px;--radius-lg:12px;--radius-full:9999px;--shadow-xs:0 1px 2px #0000000a;--shadow-sm:0 2px 4px #0000000f, 0 1px 2px #0000000a;--shadow-md:0 4px 8px #00000014, 0 2px 4px #0000000a;--shadow-lg:0 8px 16px #0000001a, 0 4px 8px #0000000f;--shadow-xl:0 16px 32px #0000001f, 0 8px 16px #00000014;--shadow-glow-brand:0 0 12px var(--brand-glow);--shadow-glow-success:0 0 8px var(--status-success-glow);--shadow-glow-warning:0 0 8px var(--status-warning-glow);--shadow-glow-danger:0 0 8px var(--status-danger-glow)}:root[data-theme=dark]{--shadow-xs:0 1px 2px #0000004d;--shadow-sm:0 2px 4px #0006, 0 1px 2px #0000004d;--shadow-md:0 4px 8px #00000080, 0 2px 4px #0000004d;--shadow-lg:0 8px 16px #0009, 0 4px 8px #0006;--shadow-xl:0 16px 32px #000000b3, 0 8px 16px #00000080;--shadow-glow-brand:0 0 16px var(--brand-glow);--shadow-glow-success:0 0 12px var(--status-success-glow);--shadow-glow-warning:0 0 12px var(--status-warning-glow);--shadow-glow-danger:0 0 12px var(--status-danger-glow)}:root{--transition-fast:.15s cubic-bezier(.4, 0, .2, 1);--transition-base:.2s cubic-bezier(.4, 0, .2, 1);--transition-slow:.3s cubic-bezier(.4, 0, .2, 1);--transition-slower:.5s cubic-bezier(.4, 0, .2, 1);--animation-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--animation-breathe:breathe 1.6s ease-in-out infinite;--animation-spin:spin .8s linear infinite;--animation-fade-in:fadeIn .2s ease-out;--animation-slide-in:slideIn .25s cubic-bezier(.4, 0, .2, 1);--animation-slide-in-right:slideInRight .25s cubic-bezier(.4, 0, .2, 1);--animation-glow:glow 2s ease-in-out infinite}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}:root{--z-base:0;--z-dropdown:1000;--z-sticky:1100;--z-fixed:1200;--z-sidebar:1300;--z-modal-mask:1400;--z-modal:1500;--z-popover:1600;--z-tooltip:1700;--z-notification:1800;--z-max:9999;--sidebar-bg:#1a2332;--sidebar-bg-hover:#2a3441;--sidebar-bg-active:#00a8cc1f;--sidebar-text:#c0c8d0;--sidebar-text-active:var(--brand-accent);--sidebar-text-hover:#e6edf3;--sidebar-border:#30363d;--sidebar-logo-bg:#0d1117}:root[data-theme=dark]{--sidebar-bg:#0d1117;--sidebar-bg-hover:#1f262d;--sidebar-bg-active:#00d4ff1a;--sidebar-text:#8b96a3;--sidebar-text-active:var(--brand-accent);--sidebar-text-hover:#e6edf3;--sidebar-border:#21262d;--sidebar-logo-bg:#010409}:root[data-theme=light]{--text-primary:#1a2332;--text-regular:#3d4d63;--text-secondary:#6b7a8f;--text-placeholder:#9eabc0;--text-disabled:#c2ccd9;--border-base:#d6dde6;--border-light:#e3e9f0;--border-lighter:#eef2f7;--border-extra-light:#f5f7fa;--bg-page:#f0f4f8;--bg-component:#fff;--bg-overlay:#fff;--bg-hover:#f5f8fb;--bg-hover-light:#fafcfd;--bg-active:#e6f9ff;--bg-inset:#eef2f7;--bg-skeleton:#e3e9f0;--bg-skeleton-hover:#eef2f7;--scrollbar-bg:#f1f1f1;--scrollbar-thumb:#c1c1c1;--scrollbar-thumb-hover:#a8a8a8}:root[data-theme=dark]{--text-primary:#e6edf3;--text-regular:#c0c8d0;--text-secondary:#8b96a3;--text-placeholder:#5a6573;--text-disabled:#3d4452;--border-base:#30363d;--border-light:#21262d;--border-lighter:#1a1f24;--border-extra-light:#161b22;--bg-page:#0d1117;--bg-component:#161b22;--bg-overlay:#1c2128;--bg-hover:#1f262d;--bg-hover-light:#262d36;--bg-active:#00d4ff14;--bg-inset:#010409;--bg-skeleton:#21262d;--bg-skeleton-hover:#2d333b;--scrollbar-bg:#21262d;--scrollbar-thumb:#4c4d4f;--scrollbar-thumb-hover:#606266}*,:before,:after{box-sizing:border-box}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{vertical-align:baseline;border:0;margin:0;padding:0}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:var(--line-height-base)}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:"";content:none}table{border-collapse:collapse;border-spacing:0}a{color:inherit;text-decoration:none}img{max-width:100%;height:auto}input,button,textarea,select{outline:none}html,body{width:100%;height:100%;font-family:var(--font-family-sans);font-size:var(--font-size-base);color:var(--text-primary);background-color:var(--bg-page);transition:background-color var(--transition-base), color var(--transition-base)}.stat-card,.tunnel-client-card,.el-card,.el-input__wrapper,.el-dialog,.el-drawer,.sidebar,.header{transition:background-color var(--transition-base), border-color var(--transition-base), color var(--transition-base)}#app{width:100%;height:100%}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--scrollbar-bg);border-radius:3px}::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover)}.mono{font-family:var(--font-family-mono)}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(.95)}}@keyframes breathe{0%,to{opacity:1}50%{opacity:.4}}@keyframes glow{0%,to{box-shadow:0 0 4px}50%{box-shadow:0 0 12px}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.fade-enter-active,.fade-leave-active{transition:opacity var(--transition-base)}.fade-enter-from,.fade-leave-to{opacity:0}.route-fade-enter-active,.route-fade-leave-active{transition:opacity var(--transition-base)}.route-fade-enter-from,.route-fade-leave-to{opacity:0}.route-fade-leave-active{padding:var(--spacing-page-y) var(--spacing-page-x);position:absolute;inset:0}:root{--el-color-primary:var(--brand-primary);--el-color-primary-light-3:color-mix(in srgb, var(--brand-primary) 70%, white);--el-color-primary-light-5:color-mix(in srgb, var(--brand-primary) 50%, white);--el-color-primary-light-7:color-mix(in srgb, var(--brand-primary) 30%, white);--el-color-primary-light-8:color-mix(in srgb, var(--brand-primary) 20%, white);--el-color-primary-light-9:color-mix(in srgb, var(--brand-primary) 10%, white);--el-color-primary-dark-2:var(--brand-primary-active);--el-color-success:var(--status-success);--el-color-warning:var(--status-warning);--el-color-danger:var(--status-danger);--el-color-info:var(--status-info);--el-text-color-primary:var(--text-primary);--el-text-color-regular:var(--text-regular);--el-text-color-secondary:var(--text-secondary);--el-text-color-placeholder:var(--text-placeholder);--el-text-color-disabled:var(--text-disabled);--el-border-color:var(--border-base);--el-border-color-light:var(--border-light);--el-border-color-lighter:var(--border-lighter);--el-border-color-extra-light:var(--border-extra-light);--el-bg-color:var(--bg-component);--el-bg-color-page:var(--bg-page);--el-bg-color-overlay:var(--bg-overlay);--el-fill-color:var(--bg-hover);--el-fill-color-light:var(--bg-hover);--el-fill-color-lighter:var(--bg-hover);--el-fill-color-blank:var(--bg-component);--el-font-size-base:var(--font-size-base);--el-border-radius-base:var(--radius-sm);--el-border-radius-small:var(--radius-sm)}html:root,html[data-density=normal]{--el-component-size:30px;--el-input-height:30px}:root[data-theme=dark]{--el-bg-color:var(--bg-component);--el-bg-color-page:var(--bg-page);--el-bg-color-overlay:var(--bg-overlay);--el-fill-color:var(--bg-hover);--el-fill-color-light:var(--bg-hover);--el-fill-color-lighter:var(--bg-hover-light)}.el-card{border-radius:var(--radius-md);border-color:var(--border-light);background-color:var(--bg-component)}.el-card .el-card__header{padding:var(--spacing-4) var(--spacing-6);border-bottom-color:var(--border-lighter)}.el-card .el-card__body{padding:var(--spacing-6)}html:root .el-button{height:var(--el-component-size);border-radius:var(--radius-sm);font-weight:var(--font-weight-medium)}html:root .el-button.is-circle{width:var(--el-component-size)}html:root .el-button--large{height:var(--el-component-size-large)}html:root .el-button--large.is-circle{width:var(--el-component-size-large)}html:root .el-button--small{height:var(--el-component-size-small)}html:root .el-button--small.is-circle{width:var(--el-component-size-small)}html:root .el-input{--el-input-height:var(--el-component-size)}html:root .el-input__wrapper{min-height:var(--el-component-size);border-radius:var(--radius-sm)}html:root .el-input__inner{height:var(--el-component-size);line-height:var(--el-component-size)}html:root .el-select__wrapper{min-height:var(--el-component-size);line-height:var(--el-component-size)}html:root .el-input--large{--el-input-height:var(--el-component-size-large)}html:root .el-input--small{--el-input-height:var(--el-component-size-small)}html:root .el-input--large .el-input__wrapper,html:root .el-input--large .el-input__inner,html:root .el-select--large .el-select__wrapper{min-height:var(--el-component-size-large);height:var(--el-component-size-large);line-height:var(--el-component-size-large)}html:root .el-input--small .el-input__wrapper,html:root .el-input--small .el-input__inner,html:root .el-select--small .el-select__wrapper{min-height:var(--el-component-size-small);height:var(--el-component-size-small);line-height:var(--el-component-size-small)}.el-overlay-dialog{justify-content:center;align-items:center;display:flex;overflow:hidden auto}.el-dialog:not(.is-fullscreen){max-height:calc(100dvh - var(--spacing-8));border-radius:var(--radius-md);flex-direction:column;display:flex;overflow:hidden;margin:0 auto!important}.el-dialog__header,.el-dialog__footer{flex:none}.el-dialog__body{flex:auto;min-height:0;overflow:hidden auto}.el-popper.expression-code-tooltip{max-width:min(480px, 100vw - var(--spacing-8));max-height:min(360px, 100vh - var(--spacing-8));box-sizing:border-box;line-height:var(--line-height-base);white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;overflow:auto}.el-overlay.confirm-action-overlay{z-index:calc(var(--z-max) + 1)!important}.el-table{--el-table-border-color:var(--border-extra-light);--el-table-header-bg-color:var(--bg-component);--el-table-row-hover-bg-color:var(--bg-hover);--el-table-bg-color:var(--bg-component);--el-table-tr-bg-color:var(--bg-component)}.el-table .el-table__cell{border-bottom-color:var(--border-extra-light)}.el-table th.el-table__cell{color:var(--text-primary);border-bottom:2px solid var(--border-lighter)!important}.el-table__body tr:hover>td.el-table__cell{transition:background-color var(--transition-fast)}.el-table__empty-block{min-height:80px}.el-table__empty-text{line-height:1.2}.el-tag{border-radius:var(--radius-full);font-weight:var(--font-weight-medium)}.el-drawer__header{margin-bottom:var(--spacing-5);padding:var(--spacing-5) var(--spacing-6);border-bottom:1px solid var(--border-lighter)}.el-drawer__body{padding:var(--spacing-6)}.el-descriptions{--el-descriptions-item-bordered-label-background:var(--bg-hover)}.el-dropdown-menu__item{align-items:center;gap:var(--spacing-2);padding:var(--spacing-3) var(--spacing-4);display:flex}.el-dropdown-menu__item.is-active{color:var(--brand-primary);background-color:var(--bg-active)}.stat-card{background-color:var(--bg-component);border-radius:var(--radius-md);border:1px solid var(--border-lighter);padding:var(--spacing-4);min-height:88px;box-shadow:var(--shadow-sm);transition:box-shadow var(--transition-base), transform var(--transition-fast);position:relative}.stat-card:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.stat-card:before{content:"";border-radius:var(--radius-md) 0 0 var(--radius-md);width:4px;position:absolute;top:0;bottom:0;left:0}.stat-card--success:before{background:linear-gradient(180deg, var(--status-success), color-mix(in srgb, var(--status-success) 60%, transparent))}.stat-card--danger:before{background:linear-gradient(180deg, var(--status-danger), color-mix(in srgb, var(--status-danger) 60%, transparent))}.stat-card--warning:before{background:linear-gradient(180deg, var(--status-warning), color-mix(in srgb, var(--status-warning) 60%, transparent))}.stat-card--info:before{background:linear-gradient(180deg, var(--status-info), color-mix(in srgb, var(--status-info) 60%, transparent))}.stat-card--neutral:before{background:linear-gradient(180deg, var(--status-neutral), color-mix(in srgb, var(--status-neutral) 60%, transparent))}.stat-card--brand:before{background:linear-gradient(180deg, var(--brand-accent), var(--brand-primary))}.stat-card__header{margin-bottom:var(--spacing-2);justify-content:space-between;align-items:center;display:flex}.stat-card__title{font-size:var(--font-size-sm);color:var(--text-secondary);font-weight:var(--font-weight-medium)}.stat-card__icon{color:var(--text-secondary);opacity:.6;transition:color var(--transition-fast), opacity var(--transition-fast);font-size:18px}.stat-card:hover .stat-card__icon{opacity:1}.stat-card--success .stat-card__icon{color:var(--status-success)}.stat-card--danger .stat-card__icon{color:var(--status-danger)}.stat-card--warning .stat-card__icon{color:var(--status-warning)}.stat-card--info .stat-card__icon{color:var(--status-info)}.stat-card--neutral .stat-card__icon{color:var(--status-neutral)}.stat-card__value{font-family:var(--font-family-mono);font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--text-primary);line-height:1.2}.stat-card__suffix{font-size:var(--font-size-sm);color:var(--text-secondary);margin-left:var(--spacing-2);font-weight:var(--font-weight-regular)}.stat-card__status{margin-top:var(--spacing-2);align-items:center;gap:var(--spacing-2);font-size:var(--font-size-xs);color:var(--text-secondary);display:flex}.stat-card__status .stat-card__status-dot{background-color:var(--status-success);border-radius:50%;flex-shrink:0;width:6px;height:6px}.stat-card--danger .stat-card__status-dot{background-color:var(--status-danger)}.stat-card--warning .stat-card__status-dot{background-color:var(--status-warning)}.data-grid{background-color:var(--bg-component);border-radius:var(--radius-md);border:1px solid var(--border-extra-light);box-shadow:var(--shadow-sm);flex-direction:column;display:flex;overflow:hidden}.data-grid.is-full{height:100%}.data-grid-toolbar{--toolbar-daterange-width:280px;--toolbar-daterange-max-width:330px;justify-content:space-between;align-items:center;gap:var(--spacing-4);padding:var(--spacing-3) var(--spacing-5);border-bottom:1px solid var(--border-extra-light);background-color:#0000;flex-wrap:wrap;flex-shrink:0;min-height:42px;display:flex}.data-grid-toolbar .data-grid-toolbar-left{align-items:center;gap:var(--spacing-3);flex:1;min-width:0;display:flex}.data-grid-toolbar .data-grid-toolbar-right{align-items:center;gap:var(--spacing-2);flex-shrink:0;display:flex}.data-grid-toolbar .data-grid-toolbar-right .el-button{margin-left:0}.data-grid-toolbar .data-grid-toolbar-right .el-button:has(>.el-icon:only-child){flex:0 0 var(--icon-action-size,32px);width:var(--icon-action-size,32px);min-width:var(--icon-action-size,32px);padding:0}.data-grid-toolbar .data-grid-toolbar-title{align-items:center;gap:var(--spacing-2);font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);color:var(--text-primary);white-space:nowrap;display:inline-flex}.data-grid-toolbar .title-help-icon{margin-left:var(--spacing-1);color:var(--text-secondary);cursor:help;font-size:var(--font-size-md);transition:color var(--transition-fast)}.data-grid-toolbar .title-help-icon:hover{color:var(--brand-primary)}.data-grid-toolbar .toolbar-input{width:200px}.data-grid-toolbar .toolbar-select{width:160px}.data-grid-toolbar .toolbar-select-sm{width:120px}.data-grid-toolbar .toolbar-daterange{width:var(--toolbar-daterange-width);max-width:var(--toolbar-daterange-max-width);flex-shrink:0}.data-grid-toolbar .toolbar-label{font-size:var(--font-size-sm);color:var(--text-secondary);white-space:nowrap;flex-shrink:0}.data-grid-toolbar .refresh-select{width:120px}.data-grid-table{flex:1;overflow:hidden}.data-grid-table .el-table{--el-table-border-color:var(--border-extra-light);--el-table-header-bg-color:var(--bg-component);--el-table-row-hover-bg-color:var(--bg-hover);--el-table-bg-color:var(--bg-component);--el-table-tr-bg-color:var(--bg-component);border:none;width:100%;height:100%}.data-grid-table .el-table .el-table__inner-wrapper:before{display:none}.data-grid-table .el-table__body tr.el-table__row--striped td.el-table__cell{background-color:var(--bg-hover)!important}.data-grid-table .el-table__body tr:hover>td.el-table__cell{transition:background-color var(--transition-fast);background-color:var(--bg-inset)!important}.data-grid-table .el-table__body tr.current-row>td.el-table__cell{background-color:var(--bg-active)!important}.data-grid-table .el-table__body tr.current-row>td.el-table__cell:first-child{box-shadow:inset 4px 0 0 0 var(--brand-primary)}.data-grid-table .el-table__cell{padding:var(--spacing-3) 0;border-bottom-color:var(--border-extra-light)}.data-grid-table th.el-table__cell{padding:var(--spacing-3) 0;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--text-primary);background-color:var(--bg-component);text-transform:none;letter-spacing:var(--letter-spacing-normal);border-bottom:2px solid var(--border-lighter)!important}.data-grid-table .el-table__row td.el-table__cell{font-size:var(--font-size-base);color:var(--text-regular)}.data-grid-table .el-table__cell.is-center .cell{justify-content:center;align-items:center;gap:var(--spacing-1);min-width:0;display:flex}.data-grid-table .cell{padding:0 var(--spacing-3)}.data-grid-table .el-tag--light{--_tag-bg:var(--el-color-primary-light-8);background-color:var(--_tag-bg)}.data-grid-table .el-tag--success.el-tag--light{--_tag-bg:var(--el-color-success-light-8);background-color:var(--_tag-bg)}.data-grid-table .el-tag--warning.el-tag--light{--_tag-bg:var(--el-color-warning-light-8);background-color:var(--_tag-bg)}.data-grid-table .el-tag--danger.el-tag--light{--_tag-bg:var(--el-color-danger-light-8);background-color:var(--_tag-bg)}.data-grid-table .el-tag--info.el-tag--light{--_tag-bg:var(--el-color-info-light-8);background-color:var(--_tag-bg)}.data-grid-table .el-table__empty-block{min-height:80px}.data-grid-pagination{justify-content:flex-end;align-items:center;gap:var(--spacing-4);padding:var(--spacing-3) var(--spacing-5);border-top:1px solid var(--border-extra-light);background-color:#0000;flex-shrink:0;display:flex}.data-grid-pagination .data-grid-pagination-info{font-size:var(--font-size-sm);color:var(--text-secondary)}.data-grid-pagination .el-pagination{--el-pagination-button-color:var(--text-regular);--el-pagination-hover-color:var(--brand-primary)}.data-grid-empty{justify-content:center;align-items:center;gap:var(--spacing-3);padding:var(--spacing-10) var(--spacing-6);color:var(--text-placeholder);flex-direction:column;display:flex}.data-grid-empty .data-grid-empty-icon{opacity:.3;font-size:48px}.data-grid-empty .data-grid-empty-text{font-size:var(--font-size-base)}.table-center-column .cell,.table-status-column .cell{justify-content:center;align-items:center;gap:var(--spacing-1);min-width:0;display:flex}.table-chip,.table-status-tag{justify-content:center;min-width:54px}.status-indicator{align-items:center;gap:var(--spacing-2);font-size:var(--font-size-sm);color:var(--text-regular);vertical-align:middle;display:inline-flex}.status-dot{border-radius:var(--radius-full);background-color:var(--status-neutral);animation:var(--animation-glow);flex-shrink:0;display:inline-block}.status-dot--online{background-color:var(--status-success);color:var(--status-success);animation:var(--animation-glow)}.status-dot--offline{background-color:var(--status-neutral);animation:none}.status-dot--alarm{background-color:var(--status-danger);color:var(--status-danger);animation:var(--animation-breathe)}.status-dot--warning{background-color:var(--status-warning);color:var(--status-warning);animation:var(--animation-glow)}.status-dot--info{background-color:var(--status-info);color:var(--status-info);animation:none}.status-dot--sm{width:6px;height:6px}.status-dot--md{width:8px;height:8px}.status-dot--lg{width:12px;height:12px}.status-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--text-regular);white-space:nowrap}.status-indicator:has(.status-dot--online) .status-label{color:var(--status-success)}.status-indicator:has(.status-dot--offline) .status-label{color:var(--status-neutral)}.status-indicator:has(.status-dot--alarm) .status-label{color:var(--status-danger)}.status-indicator:has(.status-dot--warning) .status-label{color:var(--status-warning)}.status-indicator:has(.status-dot--info) .status-label{color:var(--status-info)}:where(.channel-edit-dialog,.device-edit-dialog,.variable-edit-dialog,.quick-expression-dialog,.data-forward-target-dialog) .prop-remark{font-size:var(--font-size-xs);color:var(--text-secondary);margin-top:var(--spacing-2)}:where(.channel-edit-dialog,.device-edit-dialog,.variable-edit-dialog,.quick-expression-dialog,.data-forward-target-dialog) .form-item-with-tag{align-items:center;gap:var(--spacing-3);width:100%;min-width:0;display:flex}:where(.channel-edit-dialog,.device-edit-dialog,.variable-edit-dialog,.quick-expression-dialog,.data-forward-target-dialog) .form-item-with-tag .el-select,:where(.channel-edit-dialog,.device-edit-dialog,.variable-edit-dialog,.quick-expression-dialog,.data-forward-target-dialog) .form-item-with-tag .el-input,:where(.channel-edit-dialog,.device-edit-dialog,.variable-edit-dialog,.quick-expression-dialog,.data-forward-target-dialog) .form-item-with-tag .el-input-number,:where(.channel-edit-dialog,.device-edit-dialog,.variable-edit-dialog,.quick-expression-dialog,.data-forward-target-dialog) .form-item-with-tag .el-textarea{flex:1 1 0;min-width:0}:where(.channel-edit-dialog,.device-edit-dialog,.variable-edit-dialog,.quick-expression-dialog,.data-forward-target-dialog) .modified-tag{flex-shrink:0}:where(.channel-edit-dialog,.device-edit-dialog,.variable-edit-dialog,.quick-expression-dialog,.data-forward-target-dialog) .dialog-content{max-height:60vh;padding-top:var(--spacing-5);padding-right:var(--spacing-5);overflow:hidden auto}:where(.channel-edit-dialog,.device-edit-dialog,.variable-edit-dialog,.quick-expression-dialog,.data-forward-target-dialog) .dialog-content .el-form-item__content>.el-input-number{width:100%}:where(.channel-edit-dialog,.device-edit-dialog,.variable-edit-dialog,.quick-expression-dialog,.data-forward-target-dialog) .dialog-content::-webkit-scrollbar{width:6px}:where(.channel-edit-dialog,.device-edit-dialog,.variable-edit-dialog,.quick-expression-dialog,.data-forward-target-dialog) .dialog-content::-webkit-scrollbar-thumb{background-color:var(--scrollbar-thumb);border-radius:var(--radius-full)}:where(.channel-edit-dialog,.device-edit-dialog,.variable-edit-dialog,.quick-expression-dialog,.data-forward-target-dialog) .dialog-content::-webkit-scrollbar-thumb:hover{background-color:var(--scrollbar-thumb-hover)}:where(.channel-edit-dialog,.device-edit-dialog,.variable-edit-dialog,.quick-expression-dialog,.data-forward-target-dialog) .alarm-limit-help-icon{cursor:help;color:var(--el-text-color-secondary);margin-left:4px}@media (width<=768px){:where(.channel-edit-dialog,.device-edit-dialog,.variable-edit-dialog,.quick-expression-dialog,.data-forward-target-dialog) .dialog-content{max-height:70vh}}:where(.channel-edit-dialog,.device-edit-dialog,.variable-edit-dialog,.quick-expression-dialog,.data-forward-target-dialog) .form-help-icon{cursor:help;color:var(--el-text-color-secondary);margin-left:4px}@media (width<=576px){:where(.channel-edit-dialog,.device-edit-dialog,.variable-edit-dialog,.quick-expression-dialog,.data-forward-target-dialog) .dialog-content{max-height:75vh}}:where(.channel-edit-dialog,.device-edit-dialog,.variable-edit-dialog,.quick-expression-dialog,.data-forward-target-dialog) .detail-label{font-weight:var(--font-weight-medium);color:var(--text-secondary)}.sidebar{flex-direction:column;width:100%;height:100%;display:flex}.sidebar__logo{align-items:center;gap:var(--spacing-3);height:56px;padding:0 var(--spacing-5);background-color:var(--sidebar-logo-bg);border-bottom:1px solid var(--sidebar-border);flex-shrink:0;display:flex}.sidebar__logo img{width:28px;height:28px}.sidebar__logo-text{flex-direction:column;gap:2px;display:flex}.sidebar__logo-name{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);color:var(--sidebar-text-hover);line-height:1.2}.sidebar__logo-version{font-size:var(--font-size-xs);color:var(--sidebar-text)}.sidebar__menu{padding:var(--spacing-3) 0;flex:1;overflow-y:auto}.sidebar__menu::-webkit-scrollbar{width:4px}.sidebar__menu::-webkit-scrollbar-thumb{background:var(--sidebar-border)}.sidebar__menu-item{align-items:center;gap:var(--spacing-4);height:48px;padding:0 var(--spacing-5);color:var(--sidebar-text);cursor:pointer;transition:all var(--transition-base);display:flex;position:relative}.sidebar__menu-item .el-icon{flex-shrink:0;font-size:20px}.sidebar__menu-item:hover{background-color:var(--sidebar-bg-hover);color:var(--sidebar-text-hover)}.sidebar__menu-item.is-active{background-color:var(--sidebar-bg-active);color:var(--sidebar-text-active)}.sidebar__menu-item.is-active:before{content:"";background-color:var(--sidebar-text-active);width:3px;position:absolute;top:0;bottom:0;left:0}.sidebar__menu-item-label{font-size:var(--font-size-md);font-weight:var(--font-weight-medium)}.sidebar__footer{padding:var(--spacing-3);border-top:1px solid var(--sidebar-border);flex-shrink:0}.sidebar__collapse-btn{border-radius:var(--radius-md);width:100%;height:40px;color:var(--sidebar-text);cursor:pointer;transition:all var(--transition-base);background-color:#0000;border:none;justify-content:center;align-items:center;padding:0;display:flex}.sidebar__collapse-btn .el-icon{font-size:20px}.sidebar__collapse-btn:hover{background-color:var(--sidebar-bg-hover);color:var(--sidebar-text-hover)}.sidebar--collapsed{border-right:1px solid var(--sidebar-border)}.sidebar--collapsed .sidebar__logo{justify-content:center;padding:0}.sidebar--collapsed .sidebar__logo-text,.sidebar--collapsed .sidebar__menu-item-label{display:none}.sidebar--collapsed .sidebar__menu{overflow:visible}.sidebar--collapsed .sidebar__menu-item{white-space:nowrap;justify-content:center;gap:0;width:100%;padding:0;overflow:hidden}.sidebar--collapsed .sidebar__menu-item .el-icon{font-size:22px}.sidebar--collapsed .sidebar__menu-item .sidebar__menu-item-label{display:none}.sidebar--collapsed .sidebar__footer{padding:var(--spacing-2)}.header{height:56px;padding:0 var(--spacing-6);background-color:var(--bg-component);border-bottom:1px solid var(--border-lighter);align-items:center;gap:var(--spacing-4);flex-shrink:0;display:flex}.header__hamburger{color:var(--text-regular);cursor:pointer;font-size:20px;display:none}.header__hamburger:hover{color:var(--brand-primary)}.header__breadcrumb{align-items:center;gap:var(--spacing-2);font-size:var(--font-size-md);color:var(--text-secondary);display:flex}.header__breadcrumb .is-current{color:var(--text-primary);font-weight:var(--font-weight-medium)}.header__spacer{flex:1}.header__status{align-items:center;gap:var(--spacing-2);cursor:pointer;padding:var(--spacing-2) var(--spacing-3);border-radius:var(--radius-sm);transition:background var(--transition-base);display:flex}.header__status:hover{background-color:var(--bg-hover)}.header__status-text{font-size:var(--font-size-sm);color:var(--text-regular)}.header__uptime{font-family:var(--font-family-mono);font-size:var(--font-size-sm);color:var(--text-secondary)}.header__actions{align-items:center;gap:var(--spacing-2);display:flex}.header__action-btn{width:var(--app-header-control-size,28px);height:var(--app-header-control-size,28px);border-radius:var(--radius-sm);color:var(--text-regular);cursor:pointer;transition:all var(--transition-base);background-color:#0000;border:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.header__action-btn .el-icon{font-size:16px}.header__action-btn:hover{background-color:var(--bg-hover);color:var(--text-primary)}.header__user{width:var(--app-header-control-size,28px);height:var(--app-header-control-size,28px);border-radius:var(--radius-full);cursor:pointer;background-color:#0000;border:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.header__user-avatar{width:var(--app-header-control-size,28px);height:var(--app-header-control-size,28px);border-radius:var(--radius-full);background-color:var(--brand-primary);color:var(--brand-on-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);justify-content:center;align-items:center;display:inline-flex}.header-user-menu{min-width:320px;padding:var(--spacing-2) 0}.header-user-menu__group{padding:var(--spacing-3) var(--spacing-4);border-bottom:1px solid var(--border-lighter)}.header-user-menu__title{margin-bottom:var(--spacing-2);color:var(--text-secondary);font-size:var(--font-size-xs)}.header-user-menu .el-radio-group{gap:var(--spacing-2);flex-wrap:wrap;display:flex}.el-dialog.watchdog-about-dialog{max-width:calc(100vw - 200px)}.watchdog-about-dialog__content{color:var(--text-regular);font-size:var(--font-size-md);padding-top:var(--spacing-4);text-align:center;line-height:1.6}.app-tabbar{height:var(--layout-tabbar-height);min-height:var(--layout-tabbar-height);background-color:var(--bg-component);border-bottom:1px solid var(--border-lighter);user-select:none;flex-shrink:0;align-items:center;display:flex}.tabbar-scroll{align-items:center;gap:var(--spacing-2);height:100%;padding:0 var(--spacing-4);scrollbar-width:none;flex:1;display:flex;overflow:auto hidden}.tabbar-scroll::-webkit-scrollbar{display:none}.tabbar-item{align-items:center;gap:var(--spacing-2);height:28px;padding:0 var(--spacing-4);font-size:var(--font-size-sm);color:var(--text-regular);white-space:nowrap;cursor:pointer;border-radius:var(--radius-sm);transition:all var(--transition-fast);background-color:#0000;flex-shrink:0;display:inline-flex}.tabbar-item:hover{color:var(--text-primary);background-color:var(--bg-hover)}.tabbar-item.is-active{color:var(--brand-primary);background-color:var(--brand-primary-light);font-weight:var(--font-weight-medium)}.tabbar-item .tabbar-item-icon{font-size:var(--font-size-sm);flex-shrink:0;line-height:1}.tabbar-item .tabbar-item-text{text-overflow:ellipsis;max-width:160px;overflow:hidden}.tabbar-item-close{width:16px;height:16px;margin-left:var(--spacing-1);font-size:var(--font-size-xs);color:var(--text-placeholder);border-radius:var(--radius-full);transition:all var(--transition-fast);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.tabbar-item-close:hover{color:var(--status-danger);background-color:var(--status-danger-bg)}.tabbar-item:not(.is-active) .tabbar-item-close{opacity:0}.tabbar-item:hover .tabbar-item-close{opacity:1}.tabbar-actions{align-items:center;gap:var(--spacing-1);padding:0 var(--spacing-3);border-left:1px solid var(--border-lighter);flex-shrink:0;display:flex}.tabbar-actions .tabbar-action-btn{width:28px;height:28px;font-size:var(--font-size-base);color:var(--text-secondary);cursor:pointer;border-radius:var(--radius-sm);transition:all var(--transition-fast);justify-content:center;align-items:center;display:flex}.tabbar-actions .tabbar-action-btn:hover{color:var(--brand-primary);background-color:var(--bg-hover)}.login-page{width:100%;height:100vh;display:flex;overflow:hidden}.login-page__brand{background-color:var(--bg-page);flex-direction:column;flex:55;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.login-page__brand-grid{opacity:.35;background-image:linear-gradient(var(--border-lighter) 1px, transparent 1px), linear-gradient(90deg, var(--border-lighter) 1px, transparent 1px);background-size:48px 48px;animation:16s linear infinite login-grid-shift;position:absolute;inset:0;mask-image:radial-gradient(circle,#000 0%,#0000 72%)}.login-page__brand-orbit{border:1px solid color-mix(in srgb, var(--brand-primary) 35%, transparent);border-radius:var(--radius-full);pointer-events:none;position:absolute}.login-page__brand-orbit--outer{width:420px;height:420px;animation:18s linear infinite login-orbit}.login-page__brand-orbit--inner{width:260px;height:260px;animation:12s linear infinite reverse login-orbit}.login-page__brand-content{z-index:1;text-align:center;max-width:480px;padding:var(--spacing-8);position:relative}.login-page__brand-logo{width:64px;height:64px}.login-page__brand-shield{width:104px;height:104px;margin:0 auto var(--spacing-6);background:linear-gradient(135deg, color-mix(in srgb, var(--brand-primary) 28%, transparent), transparent), var(--bg-component);box-shadow:var(--shadow-lg);border-radius:32px;justify-content:center;align-items:center;display:flex;transform:rotate(45deg)}.login-page__brand-shield img{transform:rotate(-45deg)}.login-page__brand-title{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);color:var(--text-primary);margin-bottom:var(--spacing-3)}.login-page__brand-subtitle{font-size:var(--font-size-lg);color:var(--text-secondary);margin-bottom:var(--spacing-8)}.login-page__brand-tagline{font-size:var(--font-size-md);color:var(--text-secondary);line-height:1.8}.login-page__form-side{background-color:var(--bg-component);padding:var(--spacing-8);flex:45;justify-content:center;align-items:center;display:flex}.login-card{background:var(--bg-component);border-radius:var(--radius-lg);width:400px;max-width:calc(100% - 32px);box-shadow:var(--shadow-xl);padding:var(--spacing-8);backdrop-filter:blur(12px);border:1px solid var(--border-light);border-top:2px solid var(--brand-primary);z-index:1;flex-direction:column;justify-content:center;display:flex;position:relative}@media (width<=575px){.login-card{width:calc(100% - 32px);min-height:380px;padding:var(--spacing-6)}}.login-card__form{margin-top:var(--spacing-6)}.login-card__form .el-form-item{margin-bottom:var(--spacing-7)}.login-card__form .el-input__wrapper{height:44px;padding:0 var(--spacing-3)}.login-card__form .el-input__inner{font-size:var(--font-size-md)}.login-card__submit{width:100%;height:44px;margin-top:var(--spacing-2);font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);border-radius:var(--radius-sm)}.login-card__submit:hover{box-shadow:var(--shadow-glow-brand)}.login-card__footer{margin-top:var(--spacing-10);padding-top:var(--spacing-4);border-top:1px solid var(--border-lighter);font-size:var(--font-size-xs);color:var(--text-secondary);justify-content:space-between;align-items:center;display:flex}.login-card__tools{gap:var(--spacing-2);display:flex}.login-card__tool{align-items:center;gap:var(--spacing-3);height:40px;padding:0 var(--spacing-4);border-radius:var(--radius-base);cursor:pointer;color:var(--text-regular);transition:all var(--transition-fast);white-space:nowrap;outline:none;display:flex}.login-card__tool span{font-size:var(--font-size-sm);flex:1}.login-card__tool:hover{background:var(--bg-hover);color:var(--text-primary)}.login-card__copyright{margin-left:var(--spacing-4);white-space:nowrap}@keyframes login-grid-shift{0%{background-position:0 0}to{background-position:48px 48px}}@keyframes login-orbit{0%{transform:rotate(0)scale(1)}50%{transform:rotate(180deg)scale(1.04)}to{transform:rotate(360deg)scale(1)}}.section-header{margin-bottom:var(--spacing-4);justify-content:space-between;align-items:center;display:flex}.section-header .section-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--text-primary)}.info-card{background-color:var(--bg-component);border:1px solid var(--border-extra-light);border-radius:var(--radius-base);padding:var(--spacing-4);margin-bottom:var(--spacing-4)}.info-card .info-card-header{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);color:var(--text-primary);margin-bottom:var(--spacing-3);padding-bottom:var(--spacing-3);border-bottom:1px solid var(--border-extra-light)}.form-tip{margin-left:var(--spacing-3);font-size:var(--font-size-sm);color:var(--text-secondary)}.ping-form-card{background-color:var(--bg-hover);border:1px solid var(--border-extra-light);border-radius:var(--radius-base);padding:var(--spacing-4);margin-bottom:var(--spacing-4)}.ping-result .stat-item{background-color:var(--bg-hover);border:1px solid var(--border-extra-light)}.settings-content-footer{justify-content:flex-end;gap:var(--spacing-3);padding:var(--spacing-4) var(--spacing-5);background:var(--bg-hover);border-top:1px solid var(--border-extra-light);display:flex}.card-actions{justify-content:flex-end;gap:var(--spacing-3);margin-top:var(--spacing-4);padding-top:var(--spacing-4);border-top:1px solid var(--border-extra-light);display:flex}.error-page{justify-content:center;align-items:center;gap:var(--spacing-4);background:var(--bg-page);flex-direction:column;width:100%;height:100vh;display:flex}.error-page__code{font-size:var(--font-size-4xl);font-weight:var(--font-weight-bold);color:var(--brand-primary);font-family:var(--font-family-mono)}.error-page__desc{font-size:var(--font-size-md);color:var(--text-secondary)}.studio-toolbar{justify-content:space-between;align-items:center;gap:var(--spacing-4);padding:var(--spacing-3) var(--spacing-5);border-bottom:1px solid var(--border-extra-light);flex-wrap:wrap;display:flex}.studio-toolbar__filters{align-items:center;gap:var(--spacing-3);flex:1;min-width:0;display:flex}.studio-toolbar__actions{align-items:center;gap:var(--spacing-2);flex-shrink:0;display:flex}.studio-toolbar__actions .el-button{margin-left:0}.studio-toolbar__actions .el-button:has(>.el-icon:only-child){flex:0 0 var(--icon-action-size,32px);width:var(--icon-action-size,32px);min-width:var(--icon-action-size,32px);padding:0}.studio-toolbar .toolbar-input{width:200px}.studio-toolbar .toolbar-select{width:160px}.studio-toolbar .toolbar-select-sm{width:120px}.page-tabs{align-items:center;gap:var(--spacing-1);padding:var(--spacing-3) var(--spacing-5) 0;background-color:var(--bg-component);border-bottom:1px solid var(--border-lighter);display:flex}.page-tab{align-items:center;gap:var(--spacing-2);padding:var(--spacing-2) var(--spacing-5);font-size:var(--font-size-md);color:var(--text-secondary);cursor:pointer;border-radius:var(--radius-md) var(--radius-md) 0 0;transition:all var(--transition-base);border:1px solid #0000;border-bottom:none;margin-bottom:-1px;display:inline-flex;position:relative}.page-tab:hover{color:var(--brand-primary)}.page-tab.is-active{color:var(--brand-primary);background-color:var(--bg-page);border-color:var(--border-lighter);border-bottom-color:var(--bg-page);font-weight:var(--font-weight-semibold)}.page-tab.is-active:after{content:"";left:var(--spacing-3);right:var(--spacing-3);background:linear-gradient(90deg, var(--brand-primary), var(--brand-accent));border-radius:var(--radius-full);height:2px;box-shadow:0 0 8px var(--brand-glow);position:absolute;bottom:0}.page-tab .tab-badge{background-color:var(--status-danger);color:#fff;min-width:18px;height:18px;font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);border-radius:var(--radius-full);box-shadow:0 0 6px var(--status-danger-glow);justify-content:center;align-items:center;padding:0 5px;display:inline-flex}.panel-content{padding:var(--spacing-3) var(--spacing-5) var(--spacing-5);flex:1;overflow:hidden}.toolbar-input{width:200px}.toolbar-select{width:160px}.toolbar-select-sm{width:120px}.action-buttons{align-items:center;gap:var(--spacing-2);display:flex}.text-muted{color:var(--text-placeholder)}.panel-footer{justify-content:flex-end;gap:var(--spacing-3);padding:var(--spacing-4) var(--spacing-5);border-top:1px solid var(--border-lighter);display:flex}.form-wrapper{padding:var(--spacing-5);flex:1;overflow-y:auto}@media (width<=767px){.studio-toolbar{padding:var(--spacing-3) var(--spacing-5)}.studio-toolbar__filters{flex-wrap:wrap}.toolbar-input,.toolbar-select{width:140px}}.overview-page{gap:var(--spacing-5);width:100%;min-width:0;padding-bottom:var(--spacing-5);flex-direction:column;display:flex}.overview-stats{background:var(--bg-component);border:1px solid var(--border-light);border-radius:var(--radius-md);grid-template-columns:repeat(4,minmax(0,1fr));display:grid;overflow:hidden}.overview-stats .stat-card{min-width:0;padding:var(--spacing-5) var(--spacing-6);box-shadow:none;border:0;border-radius:0;transform:none}.overview-stats .stat-card:before{display:none}.overview-stats .stat-card+.stat-card{border-left:1px solid var(--border-extra-light)}.overview-stats .stat-card__header{margin-bottom:var(--spacing-3)}.overview-stats .stat-card__value{font-family:var(--font-family-sans);font-variant-numeric:tabular-nums}.overview-stats .stat-card__status{gap:var(--spacing-2) var(--spacing-3);flex-wrap:wrap}.overview-stats .stat-card-online-count{font-variant-numeric:tabular-nums;margin-left:auto}.overview-panels{gap:var(--spacing-5);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.overview-panel{min-width:0;padding:var(--spacing-6);border:1px solid var(--border-light);border-radius:var(--radius-md);background:var(--bg-component)}.overview-panel--trend,.overview-panel:only-child{grid-column:1/-1}.overview-panel__header{margin-bottom:var(--spacing-5)}.overview-panel__title{align-items:center;gap:var(--spacing-3);font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);color:var(--text-primary);margin:0;display:flex}.overview-panel__title .el-icon{color:var(--text-secondary)}.overview-panel__body{min-width:0}.overview-panel__placeholder{color:var(--text-secondary);margin:0}.overview-project .el-descriptions__body{background:0 0}.overview-project .el-descriptions__table{table-layout:fixed}.overview-project .el-descriptions__body .el-descriptions__cell{padding:var(--spacing-3) 0;border-bottom:1px solid var(--border-extra-light);overflow-wrap:anywhere;font-size:var(--font-size-sm);line-height:var(--line-height-base)}.overview-project tr:last-child .el-descriptions__cell{border-bottom:0}.overview-project .el-descriptions__label{min-width:150px;color:var(--text-secondary);display:inline-block}.overview-project .el-descriptions__content{color:var(--text-primary)}@media (width<=1024px){.overview-panels{grid-template-columns:minmax(0,1fr)}.overview-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.overview-stats .stat-card:nth-child(odd){border-left:0}.overview-stats .stat-card:nth-child(n+3){border-top:1px solid var(--border-extra-light)}}@media (width<=575px){.overview-page,.overview-panels{gap:var(--spacing-4)}.overview-panel,.overview-stats .stat-card{padding:var(--spacing-4)}.overview-stats .stat-card__status{align-items:flex-start}.overview-project .el-descriptions__label{min-width:0;margin-right:var(--spacing-4)}}.tree-panel{background-color:var(--bg-component);border-radius:var(--radius-base);border:1px solid var(--border-lighter);flex-direction:column;display:flex;overflow:hidden}.tree-panel .tree-header{gap:var(--spacing-2);padding:var(--spacing-3);border-bottom:1px solid var(--border-lighter);flex-direction:column;flex-shrink:0;display:flex}.tree-panel .tree-header .tree-header-row{align-items:center;gap:var(--spacing-2);display:flex}.tree-panel .tree-content{flex:1;padding:0;overflow:hidden}.tree-search{flex:1;min-width:0}.tree-search .el-input__wrapper{border-radius:var(--radius-base)}.tree-node{padding-right:var(--spacing-3);justify-content:space-between;align-items:center;display:flex}.tree-node .node-content{align-items:center;gap:var(--spacing-2);display:flex;overflow:hidden}.tree-node .node-content .node-status-dot{border-radius:var(--radius-full);flex-shrink:0;width:6px;height:6px;display:inline-block}.tree-node .node-content .node-status-dot.dot-online{background:var(--status-success)}.tree-node .node-content .node-status-dot.dot-offline{background:var(--text-secondary)}.tree-node .node-content .node-status-dot.dot-pause{background:var(--status-warning)}.tree-node .node-content .node-status-dot.dot-init{background:var(--text-secondary)}.tree-node .node-content .node-icon{font-size:var(--font-size-md);flex-shrink:0;line-height:1}.tree-node .node-content .node-icon.icon-root{color:var(--text-secondary)}.tree-node .node-content .node-icon.icon-channel{color:var(--brand-primary)}.tree-node .node-content .node-icon.icon-device{color:var(--status-success)}.tree-node .node-content .node-label{text-overflow:ellipsis;white-space:nowrap;font-size:var(--font-size-base);color:var(--text-regular);flex:1;overflow:hidden}.tree-node .node-content .node-count{color:var(--text-secondary);background:var(--bg-active);border-radius:var(--radius-full);flex-shrink:0;align-items:center;padding:1px 6px;font-size:11px;line-height:1.4;display:inline-flex}.tree-node .node-actions{flex-shrink:0;align-items:center;gap:4px;display:flex}.content-panel{background-color:var(--bg-component);border-radius:var(--radius-base);border:1px solid var(--border-lighter);flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.content-panel .content-view-switch{padding:0 var(--spacing-4);border-bottom:1px solid var(--border-lighter)}.variable-panel{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex;overflow:hidden}.variable-panel .data-grid-toolbar{align-items:center;gap:var(--spacing-2);padding:var(--spacing-2) var(--spacing-4);border-bottom:1px solid var(--border-lighter);flex-shrink:0;display:flex}.variable-panel .data-grid-toolbar .data-grid-toolbar-left{align-items:center;gap:var(--spacing-2);flex-wrap:wrap;flex:auto;min-width:0;display:flex}.variable-panel .data-grid-toolbar .data-grid-toolbar-right{align-items:center;gap:var(--spacing-1);flex-shrink:0;margin-left:auto;display:flex}.variable-panel .data-grid-toolbar .filter-input{width:180px}.variable-panel .data-grid-toolbar .filter-select{width:150px}.variable-panel .batch-bar{align-items:center;gap:var(--spacing-2);padding:var(--spacing-1) var(--spacing-4);background:var(--el-color-warning-light-9,#fdf6ec);border-bottom:1px solid var(--border-lighter);flex-shrink:0;display:flex}.variable-panel .batch-bar .batch-bar__count{font-size:var(--font-size-sm);color:var(--el-color-warning,#e6a23c);font-weight:var(--font-weight-semibold);white-space:nowrap}.variable-panel .table-wrapper{flex-direction:column;flex:1;min-height:100px;display:flex;overflow:hidden}.variable-panel .table-container{flex:1;min-height:0}.variable-panel .data-grid-pagination{padding:var(--spacing-2) var(--spacing-4);border-top:1px solid var(--border-lighter);justify-content:flex-end;gap:var(--spacing-1);flex-wrap:wrap;flex-shrink:0;display:flex}.info-grid>.info-section.plugin-properties-section{grid-column:1/-1;min-width:0}.info-grid>.info-section.plugin-properties-section .plugin-property-group{gap:var(--spacing-3) var(--spacing-6);grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr));align-items:start;display:grid}.info-grid>.info-section.plugin-properties-section .plugin-property-group__title{grid-column:1/-1;margin:0}.info-grid>.info-section.plugin-properties-section .info-item{gap:var(--spacing-3);grid-template-columns:minmax(0,min(45%,10rem)) minmax(0,1fr);min-width:0;margin:0;display:grid}.info-grid>.info-section.plugin-properties-section .info-item--wide{grid-column:1/-1}.info-grid>.info-section.plugin-properties-section .info-item .label,.info-grid>.info-section.plugin-properties-section .info-item .value{white-space:pre-wrap;overflow-wrap:anywhere;word-break:normal;width:auto;min-width:0;max-width:none}.info-grid>.info-section.plugin-properties-section .info-item .label{text-overflow:clip;overflow:visible}.detail-overlay{background:var(--bg-component);z-index:100;flex-direction:column;display:flex;position:absolute;inset:4px}.detail-header{border-bottom:1px solid var(--border-lighter);flex-shrink:0;justify-content:space-between;align-items:center;height:48px;padding:0 16px;display:flex}.detail-header .header-left{align-items:center;gap:8px;display:flex}.detail-header .header-left .detail-title{font-size:16px;font-weight:500}.detail-header .header-right{align-items:center;gap:8px;display:flex}.detail-content{flex:1;display:flex;overflow:hidden}.code-panel{border-right:1px solid var(--border-lighter);flex-direction:column;width:66.67%;display:flex}.code-panel .panel-header{background:var(--bg-hover);border-bottom:1px solid var(--border-lighter);flex-shrink:0;align-items:center;height:40px;padding:0 16px;font-weight:500;display:flex}.code-panel .code-editor{background:var(--bg-page);flex:1;padding:16px;overflow:auto}.code-panel .code-editor pre{color:var(--text-secondary);white-space:pre-wrap;word-wrap:break-word;margin:0;font-family:Consolas,Monaco,monospace;font-size:13px;line-height:1.5}.code-panel .code-editor pre code{color:inherit}.info-panel{flex-direction:column;width:33.33%;display:flex;overflow:hidden}.info-panel .el-card{flex-direction:column;flex:1;display:flex;overflow:hidden}.info-panel .el-card .el-card__body{flex-direction:column;flex:1;padding:12px;display:flex;overflow:hidden}.info-panel .el-tabs{flex-direction:column;flex:1;display:flex;overflow:hidden}.info-panel .el-tabs .el-tabs__content{flex:1;overflow:auto}.info-panel .el-tabs .el-tab-pane{height:100%}.info-panel .el-descriptions__label{white-space:nowrap!important;width:80px!important}.info-panel .el-descriptions__content{overflow:hidden}.info-panel .el-descriptions__table{table-layout:fixed;width:100%}.info-panel .text-ellipsis{white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.info-panel .text-ellipsis-tag{text-overflow:ellipsis;white-space:nowrap;vertical-align:middle;max-width:100%;display:inline-block;overflow:hidden}.info-panel .param-list{flex-direction:column;gap:12px;display:flex}.info-panel .param-item .el-descriptions .el-descriptions__body .el-descriptions__table .el-descriptions__cell{padding:8px 12px}.rule-engine-page,.scripts-page,.nodes-page,.gateway-status{height:100%;min-height:0;color:var(--text-regular)}.rule-engine-page,.scripts-page,.nodes-page{flex-direction:column;display:flex}.rule-card,.script-list-card,.node-list-card{background:var(--bg-component);border-radius:var(--radius-md);min-height:0;box-shadow:var(--shadow-sm);flex-direction:column;flex:1;display:flex;overflow:hidden}.rule-card .tab-bar,.script-list-card .tab-bar,.node-list-card .tab-bar{padding:0 var(--spacing-5);border-bottom:1px solid var(--border-extra-light);flex-shrink:0}.rule-card .data-grid-toolbar,.script-list-card .data-grid-toolbar,.node-list-card .data-grid-toolbar,.gateway-status .data-grid-toolbar,.gateway-status .tree-header{justify-content:space-between;align-items:center;gap:var(--spacing-4);min-height:40px;padding:var(--spacing-3) var(--spacing-5);border-bottom:1px solid var(--border-extra-light);display:flex}.gateway-status .tree-header{align-items:stretch;gap:var(--spacing-3);flex-direction:column;min-height:auto}.gateway-status .tree-header-row,.rule-card .filter-actions,.script-list-card .filter-actions,.node-list-card .filter-actions,.gateway-status .filter-segment,.gateway-status .filter-actions{align-items:center;gap:var(--spacing-3);flex-wrap:wrap;min-width:0;display:flex}.rule-card .filter-title,.script-list-card .filter-title,.node-list-card .filter-title,.gateway-status .data-grid-toolbar-title{align-items:center;gap:var(--spacing-2);color:var(--text-primary);font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);letter-spacing:var(--letter-spacing-tight);display:inline-flex}.rule-card .table-container,.script-list-card .table-container,.node-list-card .table-container,.gateway-status .table-container{background:var(--bg-component);flex:1;min-height:0;overflow:hidden}.rule-card .data-grid-pagination,.script-list-card .data-grid-pagination,.node-list-card .data-grid-pagination,.gateway-status .data-grid-pagination{min-height:44px;padding:var(--spacing-3) var(--spacing-5);border-top:1px solid var(--border-extra-light);flex-shrink:0;justify-content:flex-end;align-items:center;display:flex}.rule-card .el-table,.script-list-card .el-table,.node-list-card .el-table,.gateway-status .el-table{--el-table-header-bg-color:var(--bg-component);--el-table-tr-bg-color:var(--bg-component);--el-table-row-hover-bg-color:var(--bg-hover);--el-table-border-color:var(--border-extra-light);font-size:var(--font-size-base);border:none}.rule-card .el-table th.el-table__cell,.script-list-card .el-table th.el-table__cell,.node-list-card .el-table th.el-table__cell,.gateway-status .el-table th.el-table__cell{padding:var(--spacing-3) 0;color:var(--text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);background:var(--bg-component);border-bottom:2px solid var(--border-lighter)!important}.rule-card .el-table td.el-table__cell,.script-list-card .el-table td.el-table__cell,.node-list-card .el-table td.el-table__cell,.gateway-status .el-table td.el-table__cell{padding:var(--spacing-3) 0}.rule-card .el-table__body tr.el-table__row--striped td.el-table__cell,.script-list-card .el-table__body tr.el-table__row--striped td.el-table__cell,.node-list-card .el-table__body tr.el-table__row--striped td.el-table__cell,.gateway-status .el-table__body tr.el-table__row--striped td.el-table__cell{background:var(--bg-hover)!important}.rule-card .el-table__body tr:hover>td.el-table__cell,.script-list-card .el-table__body tr:hover>td.el-table__cell,.node-list-card .el-table__body tr:hover>td.el-table__cell,.gateway-status .el-table__body tr:hover>td.el-table__cell{transition:background-color var(--transition-fast);background:var(--bg-inset)!important}.gateway-status,.workspace-content:has(.gateway-status){overflow:hidden}.gateway-status .el-splitter,.gateway-status .content-panel,.gateway-status .variable-panel,.gateway-status .device-detail-panel{height:100%;min-height:0}.gateway-status .tree-panel,.gateway-status .content-panel,.gateway-status .mobile-content{background:var(--bg-component);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);overflow:hidden}.gateway-status .tree-content{min-height:0;padding:var(--spacing-2);flex:1;overflow:auto}.gateway-status .tree-node{height:32px;padding:0 var(--spacing-3);border-radius:var(--radius-sm);color:var(--text-regular);transition:background-color var(--transition-fast), color var(--transition-fast)}.gateway-status .tree-node:hover{color:var(--text-primary);background:var(--bg-hover)}.gateway-status .node-status-dot,.gateway-status .status-dot{border-radius:var(--radius-full);background:var(--status-neutral);width:8px;height:8px}.gateway-status .node-status-dot.is-online,.gateway-status .status-dot.is-online,.gateway-status .dot-online{background:var(--status-success);box-shadow:0 0 8px var(--status-success-glow)}.gateway-status .node-status-dot.is-offline,.gateway-status .status-dot.is-offline{background:var(--status-neutral)}.gateway-status .node-count,.gateway-status .online-count,.gateway-status .selection-count{align-items:center;gap:var(--spacing-2);height:22px;padding:0 var(--spacing-3);color:var(--text-secondary);font-size:var(--font-size-xs);background:var(--bg-inset);border-radius:var(--radius-full);display:inline-flex}.gateway-status .content-view-switch{padding:0 var(--spacing-5);border-bottom:1px solid var(--border-extra-light);flex-shrink:0}.detail-overlay{z-index:var(--z-fixed);background:var(--bg-page);flex-direction:column;display:flex;position:absolute;inset:0;overflow:hidden}.detail-overlay .detail-header,.detail-overlay .editor-header,.detail-overlay .node-detail-header{justify-content:space-between;align-items:center;gap:var(--spacing-4);min-height:56px;padding:0 var(--spacing-6);background:var(--bg-component);border-bottom:1px solid var(--border-lighter);box-shadow:var(--shadow-sm);display:flex}.detail-overlay .detail-content,.detail-overlay .editor-content,.detail-overlay .node-detail-content{min-height:0;padding:var(--spacing-5);flex:1;overflow:auto}.script-editor,.custom-node-editor,.flow-editor-detail{height:100%;min-height:0;color:var(--text-regular);background:var(--bg-page)}.script-editor .editor-main,.custom-node-editor .editor-main,.flow-editor-detail .editor-main,.flow-editor-detail .flow-content{background:var(--bg-component);border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.debug-base{height:100%;padding:var(--spacing-3);color:var(--text-regular);background:var(--bg-component);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);overflow:hidden}.debug-tabs{height:100%}.debug-tabs .el-tabs__header{padding:0 var(--spacing-4);background:var(--bg-hover);border-bottom:1px solid var(--border-extra-light);margin:0}.debug-tabs .el-tabs__content{height:calc(100% - 40px);padding:var(--spacing-4);overflow:auto}.debug-base .el-card,.detail-overlay .el-card,.script-editor .el-card,.custom-node-editor .el-card,.flow-editor-detail .el-card{background:var(--bg-component);border-color:var(--border-lighter);border-radius:var(--radius-base);box-shadow:none}.dialog-content{padding:var(--spacing-4) var(--spacing-2) var(--spacing-2) 0}.prop-remark{color:var(--text-secondary);font-size:var(--font-size-xs)}.value-text,.time-text,.sql-text,.mono,.detail-pre,.detail-message{font-family:var(--font-family-mono);font-weight:var(--font-weight-medium)}@media (width<=767px){.rule-card .data-grid-toolbar,.script-list-card .data-grid-toolbar,.node-list-card .data-grid-toolbar,.gateway-status .data-grid-toolbar{flex-direction:column;align-items:stretch}.rule-card .filter-actions,.script-list-card .filter-actions,.node-list-card .filter-actions,.gateway-status .filter-actions,.gateway-status .filter-segment{width:100%}.rule-card .filter-actions>*,.script-list-card .filter-actions>*,.node-list-card .filter-actions>*,.gateway-status .filter-actions>*,.gateway-status .filter-segment>*{flex:160px}.detail-overlay .detail-header,.detail-overlay .editor-header,.detail-overlay .node-detail-header{min-height:auto;padding:var(--spacing-4);flex-direction:column;align-items:stretch}}.el-drawer__header{margin-bottom:0!important}.drawer-header{width:100%;padding-bottom:var(--spacing-4);border-bottom:1px solid var(--border-extra-light);justify-content:space-between;align-items:center;display:flex}.el-drawer__close-btn{padding-bottom:var(--spacing-4)}.log-detail{padding:0 var(--spacing-5);flex-direction:column;display:flex}.log-detail .detail-row{align-items:flex-start;gap:var(--spacing-4);padding:var(--spacing-3) 0;border-bottom:1px solid var(--border-extra-light);display:flex}.log-detail .detail-row:last-child{border-bottom:none}.log-detail .detail-row .detail-label{width:100px;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--text-secondary);flex-shrink:0;padding-top:1px}.log-detail .detail-row .detail-value{min-width:0;font-size:var(--font-size-base);color:var(--text-primary);line-height:var(--line-height-base);word-break:break-word;flex:1}.log-detail .detail-row .detail-value.mono{font-family:var(--font-family-mono);font-size:var(--font-size-sm);color:var(--brand-primary)}.log-detail .detail-row:has(.detail-pre){flex-direction:column;gap:0}.log-detail .detail-row:has(.detail-pre) .detail-label{width:auto;margin-bottom:var(--spacing-2)}.log-detail .detail-pre{width:100%;padding:var(--spacing-4);background:var(--bg-inset);border-radius:var(--radius-base);border:1px solid var(--border-extra-light);font-family:var(--font-family-mono);font-size:var(--font-size-xs);color:var(--text-regular);line-height:var(--line-height-relaxed);white-space:pre-wrap;word-break:break-all;max-height:400px;margin:0;overflow-y:auto}.log-detail .detail-pre.error{color:var(--status-danger);background:var(--status-danger-bg);border-color:color-mix(in srgb, var(--status-danger) 25%, transparent)}.log-detail .detail-pre.sql{color:var(--brand-primary);border-color:color-mix(in srgb, var(--brand-primary) 25%, transparent)}.log-detail .el-descriptions{--el-descriptions-item-bordered-label-background:var(--bg-hover);--el-descriptions-item-bordered-label-color:var(--text-secondary);border-color:var(--border-extra-light);border-radius:var(--radius-md);overflow:hidden}.log-detail .el-descriptions .el-descriptions__label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);width:100px}.log-detail .el-descriptions .el-descriptions__content{font-size:var(--font-size-base);color:var(--text-primary)}.log-detail .detail-message,.log-detail .detail-content{padding:var(--spacing-3);background:var(--bg-inset);border-radius:var(--radius-sm);font-family:var(--font-family-mono);font-size:var(--font-size-xs);color:var(--text-regular);line-height:var(--line-height-relaxed);white-space:pre-wrap;word-break:break-all;max-height:400px;margin:0;overflow-y:auto}.log-detail .detail-content{color:var(--status-danger);background:var(--status-danger-bg)}.el-drawer__body{box-sizing:border-box;overflow-y:auto}@media (width<=576px){.log-detail{padding:0 var(--spacing-4)}.log-detail .detail-row{gap:var(--spacing-1);flex-direction:column}.log-detail .detail-row .detail-label{width:auto}}.text-primary{color:var(--text-primary)}.text-regular{color:var(--text-regular)}.text-secondary{color:var(--text-secondary)}.text-success{color:var(--status-success)}.text-warning{color:var(--status-warning)}.text-danger{color:var(--status-danger)}.text-info{color:var(--status-info)}.text-brand{color:var(--brand-primary)}.text-xs{font-size:var(--font-size-xs)}.text-sm{font-size:var(--font-size-sm)}.text-base{font-size:var(--font-size-base)}.text-md{font-size:var(--font-size-md)}.text-lg{font-size:var(--font-size-lg)}.text-xl{font-size:var(--font-size-xl)}.text-2xl{font-size:var(--font-size-2xl)}.font-medium{font-weight:var(--font-weight-medium)}.font-semibold{font-weight:var(--font-weight-semibold)}.font-bold{font-weight:var(--font-weight-bold)}.font-mono{font-family:var(--font-family-mono)}.m-0{margin:0}.mt-2{margin-top:var(--spacing-2)}.mt-3{margin-top:var(--spacing-3)}.mt-4{margin-top:var(--spacing-4)}.mt-5{margin-top:var(--spacing-5)}.mb-2{margin-bottom:var(--spacing-2)}.mb-3{margin-bottom:var(--spacing-3)}.mb-4{margin-bottom:var(--spacing-4)}.mb-5{margin-bottom:var(--spacing-5)}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-end{justify-content:flex-end}.gap-2{gap:var(--spacing-2)}.gap-3{gap:var(--spacing-3)}.gap-4{gap:var(--spacing-4)}.gap-5{gap:var(--spacing-5)}.page-title{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--text-primary)}.empty-state{padding:var(--spacing-6) var(--spacing-4);text-align:center;flex-direction:column;justify-content:center;align-items:center;display:flex}.empty-state__icon{color:var(--text-disabled);margin-bottom:var(--spacing-4);font-size:40px}.empty-state__title{font-size:var(--font-size-md);color:var(--text-regular);margin-bottom:var(--spacing-2)}.empty-state__description{font-size:var(--font-size-sm);color:var(--text-secondary);margin-bottom:var(--spacing-5)}.empty-state--small{padding:var(--spacing-1);gap:2px;min-height:0}.empty-state--small .empty-state__icon{margin-bottom:0;font-size:16px}.empty-state--small .empty-state__title{font-size:var(--font-size-xs);margin-bottom:0;line-height:1.2}.empty-state--small .empty-state__description{font-size:var(--font-size-xs);margin-bottom:0}.empty-state--small .el-button{margin-top:var(--spacing-1)}@media (width<=1600px){.data-grid-toolbar,.studio-toolbar,.memory-toolbar{row-gap:var(--spacing-2);flex-flow:wrap!important;justify-content:flex-start!important;align-items:stretch!important}.data-grid-toolbar>.data-grid-toolbar-left,.data-grid-toolbar>.data-grid-toolbar-right,.studio-toolbar>.studio-toolbar__filters,.studio-toolbar>.studio-toolbar__actions,.memory-toolbar>.toolbar-left,.memory-toolbar>.toolbar-right{min-width:0;max-width:100%;flex-wrap:wrap!important;flex:100%!important;width:100%!important;margin-left:0!important}.data-grid-toolbar>.data-grid-toolbar-left,.studio-toolbar>.studio-toolbar__filters,.memory-toolbar>.toolbar-left,.data-grid-toolbar>.data-grid-toolbar-right,.studio-toolbar>.studio-toolbar__actions,.memory-toolbar>.toolbar-right{justify-content:flex-start!important}.data-grid-toolbar-left>.el-input,.data-grid-toolbar-left>.el-select,.data-grid-toolbar-left>.el-date-editor,.data-grid-toolbar-left>.toolbar-input,.data-grid-toolbar-left>.toolbar-select,.data-grid-toolbar-left>.toolbar-select-sm,.data-grid-toolbar-left>.filter-input,.data-grid-toolbar-left>.filter-select,.studio-toolbar__filters>.el-input,.studio-toolbar__filters>.el-select,.studio-toolbar__filters>.el-date-editor,.studio-toolbar__filters>.toolbar-input,.studio-toolbar__filters>.toolbar-select,.studio-toolbar__filters>.toolbar-select-sm,.memory-toolbar>.toolbar-left>.el-input,.memory-toolbar>.toolbar-left>.el-select,.memory-toolbar>.toolbar-left>.toolbar-input,.memory-toolbar>.toolbar-left>.toolbar-select{min-width:0;max-width:100%}.rule-card .data-grid-toolbar,.script-list-card .data-grid-toolbar,.node-list-card .data-grid-toolbar,.gateway-status .data-grid-toolbar{align-items:stretch!important}.rule-card .filter-actions,.script-list-card .filter-actions,.node-list-card .filter-actions,.gateway-status .filter-actions,.gateway-status .filter-segment{flex:100%!important;justify-content:flex-start!important;width:100%!important}}@media (width<=768px){.el-table.el-table--mobile-card{scrollbar-width:thin;-webkit-overflow-scrolling:touch;background:0 0;max-width:100%;min-height:0;overflow:hidden auto!important}.el-table.el-table--mobile-card:before,.el-table.el-table--mobile-card .el-table__inner-wrapper:before{display:none}.el-table.el-table--mobile-card .el-table__header-wrapper,.el-table.el-table--mobile-card .el-table__fixed-header-wrapper,.el-table.el-table--mobile-card .el-table__footer-wrapper,.el-table.el-table--mobile-card .el-table__append-wrapper,.el-table.el-table--mobile-card colgroup{display:none!important}.el-table.el-table--mobile-card .el-table__inner-wrapper,.el-table.el-table--mobile-card .el-table__body-wrapper,.el-table.el-table--mobile-card .el-scrollbar,.el-table.el-table--mobile-card .el-scrollbar__wrap,.el-table.el-table--mobile-card .el-scrollbar__view{width:100%!important;max-width:100%!important;height:auto!important;max-height:none!important;display:block!important;overflow:visible!important}.el-table.el-table--mobile-card .el-table__body{table-layout:auto!important;width:100%!important;display:block!important}.el-table.el-table--mobile-card tbody{gap:var(--spacing-2);padding:var(--spacing-2);box-sizing:border-box;flex-direction:column;width:100%!important;display:flex!important}.el-table.el-table--mobile-card tr.el-table__row{border:1px solid var(--border-lighter);background:var(--bg-component);box-shadow:none;border-radius:8px;overflow:hidden;width:100%!important;display:block!important}.el-table.el-table--mobile-card tr.el-table__row:hover>td.el-table__cell,.el-table.el-table--mobile-card tr.el-table__row--striped>td.el-table__cell,.el-table.el-table--mobile-card tr.el-table__row--striped:hover>td.el-table__cell{background:0 0!important}.el-table.el-table--mobile-card td.el-table__cell{justify-content:space-between;align-items:flex-start;gap:var(--spacing-3);box-sizing:border-box;width:100%!important;min-width:0!important;max-width:100%!important;padding:var(--spacing-2) var(--spacing-3)!important;border-right:0!important;border-bottom:1px solid var(--border-lighter)!important;text-align:left!important;background:0 0!important;display:flex!important}.el-table.el-table--mobile-card td.el-table__cell:before{content:attr(data-mobile-label);max-width:42%;color:var(--text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);overflow-wrap:anywhere;flex:0 0 92px;line-height:1.4}.el-table.el-table--mobile-card td.el-table__cell[data-mobile-label=""]:before{display:none}.el-table.el-table--mobile-card td.el-table__cell:last-child{border-bottom:0!important}.el-table.el-table--mobile-card td.el-table__cell .cell{text-align:right;white-space:normal;overflow-wrap:anywhere;flex:1;min-width:0;line-height:1.45;overflow:visible;padding:0!important}.el-table.el-table--mobile-card td.el-table__cell.is-center .cell,.el-table.el-table--mobile-card td.el-table__cell.is-right .cell,.el-table.el-table--mobile-card td.el-table__cell.table-center-column .cell,.el-table.el-table--mobile-card td.el-table__cell.table-status-column .cell{justify-content:flex-end!important}.el-table.el-table--mobile-card .el-table-column--selection .cell{justify-content:flex-end}.el-table.el-table--mobile-card .el-button+.el-button{margin-left:var(--spacing-1)}.el-table.el-table--mobile-card .el-table__empty-block{justify-content:center;align-items:center;width:100%!important;height:132px!important;min-height:132px!important;max-height:180px!important;display:flex!important}.el-table.el-table--mobile-card .el-table__empty-text{width:100%;padding:var(--spacing-4);box-sizing:border-box;line-height:1.4;position:static!important;inset:auto!important;transform:none!important}.el-table.el-table--mobile-card.el-table--mobile-card-empty{min-height:132px;height:auto!important;max-height:180px!important;overflow-y:hidden!important}.el-table.el-table--mobile-card.el-table--mobile-card-empty .el-table__inner-wrapper,.el-table.el-table--mobile-card.el-table--mobile-card-empty .el-table__body-wrapper,.el-table.el-table--mobile-card.el-table--mobile-card-empty .el-scrollbar,.el-table.el-table--mobile-card.el-table--mobile-card-empty .el-scrollbar__wrap,.el-table.el-table--mobile-card.el-table--mobile-card-empty .el-scrollbar__view{height:auto!important;max-height:180px!important;overflow:hidden!important}.el-table.el-table--mobile-card.el-table--mobile-card-empty tbody{gap:0;padding:0;display:none!important}.data-grid-table,.table-container,.table-page-shell__body{scrollbar-width:thin;-webkit-overflow-scrolling:touch;min-height:0;overflow:hidden auto}.data-grid-table>.el-table.el-table--mobile-card,.table-container>.el-table.el-table--mobile-card,.table-page-shell__body>.el-table.el-table--mobile-card{height:100%!important;max-height:100%!important}}@media (width<=991px){.tunnel-page__grid{grid-template-columns:repeat(2,1fr)}}@media (width<=767px){.app-sidebar{display:none}.header-mobile-menu{display:inline-flex}.workspace-content{padding:var(--spacing-3)}.log-stream__body{font-size:var(--font-size-xs)}.log-stream__line-number{display:none}.status-banner{flex-wrap:wrap;height:auto}.el-dialog:not(.is-fullscreen){width:96%!important}.settings-page{flex-direction:column}.settings-body{padding:var(--spacing-3) var(--spacing-5) var(--spacing-5);flex-direction:column}.settings-sidebar{width:100%}.settings-sidebar .settings-nav{gap:var(--spacing-2);flex-flow:wrap;height:auto}.settings-sidebar .settings-nav .settings-nav-item{width:auto;min-width:80px;padding:var(--spacing-2) var(--spacing-3);flex:auto;justify-content:center}.settings-sidebar .settings-nav .settings-nav-item.is-active:before{display:none}.settings-sidebar .settings-nav .settings-nav-item .settings-nav-label{font-size:var(--font-size-sm)}.settings-content{padding:var(--spacing-4);min-width:0}.settings-content>*{min-width:0}.settings-content .el-row{row-gap:var(--spacing-3);margin-left:0!important;margin-right:0!important}.settings-content .el-descriptions__table{table-layout:fixed}.settings-content .el-descriptions__label,.settings-content .el-descriptions__content{white-space:normal;word-break:break-word}.login-page{flex-direction:column}.login-page__brand{display:none}.login-page__form-side{flex:1}.projects-page__header,.backups-page__header{align-items:flex-start;gap:var(--spacing-3);flex-direction:column}.projects-page__actions,.backups-page__actions{flex-wrap:wrap}.projects-page__list .el-table,.backups-page__list .el-table{display:none}.projects-page__cards,.backups-page__cards{gap:var(--spacing-3);grid-template-columns:1fr;display:grid}.projects-page__row-actions,.backups-page__row-actions{flex-wrap:wrap}.projects-page__row,.backups-page__row{gap:var(--spacing-2)}.studio-toolbar{padding:var(--spacing-3);align-items:stretch}.studio-toolbar__filters{flex-wrap:wrap;width:100%}.studio-toolbar__actions{flex-wrap:wrap;justify-content:flex-start;width:100%}.studio-toolbar__filters>.el-input,.studio-toolbar__filters>.el-select,.studio-toolbar__filters>.el-date-editor,.studio-toolbar__filters>.toolbar-input,.studio-toolbar__filters>.toolbar-select,.studio-toolbar__filters>.toolbar-select-sm,.studio-toolbar__filters>.filter-input,.studio-toolbar__filters>.filter-select,.studio-toolbar__filters>.asset-search,.studio-toolbar__filters>.device-status-select,.studio-toolbar__filters>.plugin-filter-select,.studio-toolbar__filters>.toolbar-daterange,.data-grid-toolbar-left>.el-input,.data-grid-toolbar-left>.el-select,.data-grid-toolbar-left>.el-date-editor,.data-grid-toolbar-left>.toolbar-input,.data-grid-toolbar-left>.toolbar-select,.data-grid-toolbar-left>.toolbar-select-sm,.data-grid-toolbar-left>.filter-input,.data-grid-toolbar-left>.filter-select,.data-grid-toolbar-left>.asset-search,.data-grid-toolbar-left>.device-status-select,.data-grid-toolbar-left>.plugin-filter-select,.data-grid-toolbar-left>.toolbar-daterange,.rule-card .filter-actions>.el-input,.rule-card .filter-actions>.el-select,.rule-card .filter-actions>.el-date-editor,.rule-card .filter-actions>.toolbar-input,.rule-card .filter-actions>.toolbar-select,.rule-card .filter-actions>.toolbar-select-sm,.rule-card .filter-actions>.filter-input,.rule-card .filter-actions>.filter-select,.rule-card .filter-actions>.asset-search,.rule-card .filter-actions>.device-status-select,.rule-card .filter-actions>.plugin-filter-select,.rule-card .filter-actions>.toolbar-daterange,.script-list-card .filter-actions>.el-input,.script-list-card .filter-actions>.el-select,.script-list-card .filter-actions>.el-date-editor,.script-list-card .filter-actions>.toolbar-input,.script-list-card .filter-actions>.toolbar-select,.script-list-card .filter-actions>.toolbar-select-sm,.script-list-card .filter-actions>.filter-input,.script-list-card .filter-actions>.filter-select,.script-list-card .filter-actions>.asset-search,.script-list-card .filter-actions>.device-status-select,.script-list-card .filter-actions>.plugin-filter-select,.script-list-card .filter-actions>.toolbar-daterange,.node-list-card .filter-actions>.el-input,.node-list-card .filter-actions>.el-select,.node-list-card .filter-actions>.el-date-editor,.node-list-card .filter-actions>.toolbar-input,.node-list-card .filter-actions>.toolbar-select,.node-list-card .filter-actions>.toolbar-select-sm,.node-list-card .filter-actions>.filter-input,.node-list-card .filter-actions>.filter-select,.node-list-card .filter-actions>.asset-search,.node-list-card .filter-actions>.device-status-select,.node-list-card .filter-actions>.plugin-filter-select,.node-list-card .filter-actions>.toolbar-daterange,.gateway-status .filter-actions>.el-input,.gateway-status .filter-actions>.el-select,.gateway-status .filter-actions>.el-date-editor,.gateway-status .filter-actions>.toolbar-input,.gateway-status .filter-actions>.toolbar-select,.gateway-status .filter-actions>.toolbar-select-sm,.gateway-status .filter-actions>.filter-input,.gateway-status .filter-actions>.filter-select,.gateway-status .filter-actions>.asset-search,.gateway-status .filter-actions>.device-status-select,.gateway-status .filter-actions>.plugin-filter-select,.gateway-status .filter-actions>.toolbar-daterange,.gateway-status .filter-segment>.el-input,.gateway-status .filter-segment>.el-select,.gateway-status .filter-segment>.el-date-editor,.gateway-status .filter-segment>.toolbar-input,.gateway-status .filter-segment>.toolbar-select,.gateway-status .filter-segment>.toolbar-select-sm,.gateway-status .filter-segment>.filter-input,.gateway-status .filter-segment>.filter-select,.gateway-status .filter-segment>.asset-search,.gateway-status .filter-segment>.device-status-select,.gateway-status .filter-segment>.plugin-filter-select,.gateway-status .filter-segment>.toolbar-daterange,.log-panel-filters>.el-input,.log-panel-filters>.el-select,.log-panel-filters>.el-date-editor,.log-panel-filters>.toolbar-input,.log-panel-filters>.toolbar-select,.log-panel-filters>.toolbar-select-sm,.log-panel-filters>.filter-input,.log-panel-filters>.filter-select,.log-panel-filters>.asset-search,.log-panel-filters>.device-status-select,.log-panel-filters>.plugin-filter-select,.log-panel-filters>.toolbar-daterange{flex:1 1 calc(50% - var(--spacing-2));min-width:0;max-width:100%;width:auto!important}.data-grid-toolbar{--toolbar-daterange-width:100%;--toolbar-daterange-max-width:100%;align-items:stretch;gap:var(--spacing-3);padding:var(--spacing-3)}.data-grid-toolbar .data-grid-toolbar-left,.data-grid-toolbar .data-grid-toolbar-right{flex-wrap:wrap;justify-content:flex-start;width:100%}.data-grid-toolbar .data-grid-toolbar-right{flex:auto}.data-grid-toolbar .data-grid-toolbar-title{width:100%}.data-grid-toolbar .toolbar-input,.data-grid-toolbar .toolbar-select,.data-grid-toolbar .toolbar-select-sm,.data-grid-toolbar .filter-input,.data-grid-toolbar .filter-select,.data-grid-toolbar .toolbar-level-input,.data-grid-toolbar .refresh-select{flex:1 1 calc(50% - var(--spacing-2));min-width:0;max-width:100%;width:auto!important}.data-grid-toolbar .toolbar-daterange{flex:100%;min-width:0;max-width:100%;width:auto!important}.data-grid-toolbar .data-grid-toolbar-right{align-items:center;min-width:0}.data-grid-toolbar .data-grid-toolbar-right .el-button{flex:none;margin-left:0}.data-grid-toolbar .data-grid-toolbar-right>.el-dropdown,.data-grid-toolbar .data-grid-toolbar-right>.el-tooltip__trigger{flex:none}.data-grid-toolbar .data-grid-toolbar-right>.el-select,.data-grid-toolbar .data-grid-toolbar-right>.toolbar-select,.data-grid-toolbar .data-grid-toolbar-right>.toolbar-select-sm,.data-grid-toolbar .data-grid-toolbar-right>.refresh-select{flex:120px;min-width:0;width:auto!important}.studio-toolbar__actions,.toolbar-right,.panel-tools,.detail-actions{flex-wrap:wrap;min-width:0}.studio-toolbar__actions .el-button,.toolbar-right .el-button,.panel-tools .el-button,.detail-actions .el-button{flex:none;margin-left:0}.panel-search{flex:150px;min-width:0;max-width:100%;width:auto!important}.auto-refresh-control{flex:0 128px;min-width:0;max-width:180px}.auto-refresh-control__select{flex:auto;min-width:0;width:auto!important}.el-radio-group,.el-segmented{min-width:0;max-width:100%}.el-radio-group{row-gap:var(--spacing-1);flex-wrap:wrap}.el-segmented{overflow-x:auto}.el-segmented__group{flex-wrap:nowrap;min-width:0}.audit-log-panel .title-help-icon{display:none}.audit-log-panel .data-grid-toolbar-left{grid-template-columns:repeat(2,minmax(0,1fr));align-items:center;width:100%;display:grid}.audit-log-panel .audit-type-switch,.audit-log-panel .toolbar-daterange{grid-column:1/-1;min-width:0;width:100%!important;max-width:100%!important}.audit-log-panel .toolbar-input,.audit-log-panel .toolbar-input.compact,.audit-log-panel .toolbar-select{min-width:0;width:100%!important}.data-grid-pagination,.data-grid-pagination.is-left,.data-grid-pagination.is-center,.data-grid-pagination.is-right{padding:var(--spacing-3);overflow:auto hidden;justify-content:flex-start!important}.data-grid-pagination .el-pagination{justify-content:flex-start;row-gap:var(--spacing-2);flex-wrap:wrap;max-width:100%}.data-grid-pagination .el-pagination__sizes,.data-grid-pagination .el-pagination__jump{display:none!important}.data-grid-pagination .el-pagination__total{flex-basis:100%;margin-right:0}.el-date-editor.el-input,.el-date-editor.el-input__wrapper,.el-date-editor--daterange.el-input__wrapper{min-width:0;width:100%!important}.el-select__selected-item,.el-select__placeholder,.el-select__tags-text{text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:100%;overflow:hidden}.el-select__tags .el-tag{max-width:100%}.el-tabs__nav-wrap,.el-tabs__nav-scroll{scrollbar-width:thin;overflow:auto hidden!important}.el-tabs__nav{white-space:nowrap}.el-tabs__item{padding:0 var(--spacing-3)}.el-drawer{max-width:100vw}.el-dialog:not(.is-fullscreen){max-height:calc(100dvh - var(--spacing-6));flex-direction:column;display:flex;overflow:hidden;max-width:calc(100vw - var(--spacing-4))!important;margin:0 auto!important}.el-overlay-dialog{padding:var(--spacing-2);box-sizing:border-box;justify-content:center;align-items:flex-start;display:flex;overflow:hidden auto}.el-dialog__header,.el-dialog__footer{flex:none}.el-dialog__body{flex:auto;min-height:0;overflow:hidden auto}.el-overlay-message-box{padding:var(--spacing-3);box-sizing:border-box;overflow:hidden auto}.el-message-box{max-width:calc(100vw - var(--spacing-6));max-height:calc(100dvh - var(--spacing-6));box-sizing:border-box;flex-direction:column;display:flex;overflow:hidden;width:calc(100vw - var(--spacing-6))!important}.el-message-box__header,.el-message-box__btns{flex:none}.el-message-box__content{flex:auto;min-width:0;min-height:0;overflow:hidden auto}.el-message-box__message,.el-message-box__input,.el-message-box__input .el-input{min-width:0;max-width:100%}.el-message-box__message{word-break:break-word}.el-message-box__btns{justify-content:flex-end;gap:var(--spacing-2);flex-wrap:wrap;display:flex}.el-message-box__btns .el-button{margin-left:0}.el-message,.el-notification{max-width:calc(100vw - var(--spacing-4));box-sizing:border-box}.el-message{min-width:0!important}.el-popper:not(.el-picker__popper){max-width:calc(100vw - var(--spacing-4));box-sizing:border-box}.el-select-dropdown,.el-dropdown__popper,.el-tooltip__popper{max-width:calc(100vw - var(--spacing-4))}.header-user-menu{min-width:0;width:calc(100vw - var(--spacing-6));box-sizing:border-box;max-width:100%}.header-user-menu .el-radio-group{width:100%}.header-user-menu .el-radio-button{flex:86px;min-width:0}.header-user-menu .el-radio-button__inner{width:100%;padding-left:var(--spacing-2);padding-right:var(--spacing-2);text-overflow:ellipsis;overflow:hidden}.side-panel-body,.dialog-content,.form-wrapper,.el-dialog .el-form{box-sizing:border-box;min-width:0;max-width:100%}.side-panel-body .el-row,.dialog-content .el-row,.form-wrapper .el-row,.el-dialog .el-form .el-row{row-gap:var(--spacing-3);margin-left:0!important;margin-right:0!important}.side-panel-body .el-col,.dialog-content .el-col,.form-wrapper .el-col,.el-dialog .el-form .el-col{padding-left:0!important;padding-right:0!important}.side-panel-body .el-form-item,.dialog-content .el-form-item,.form-wrapper .el-form-item,.el-dialog .el-form .el-form-item{margin-bottom:var(--spacing-4);display:block}.side-panel-body .el-form-item__label,.dialog-content .el-form-item__label,.form-wrapper .el-form-item__label,.el-dialog .el-form .el-form-item__label{height:auto;margin-bottom:var(--spacing-1);text-align:left;justify-content:flex-start;padding:0;line-height:1.4;width:100%!important}.side-panel-body .el-form-item__content,.dialog-content .el-form-item__content,.form-wrapper .el-form-item__content,.el-dialog .el-form .el-form-item__content{width:100%;margin-left:0!important}.side-panel-body .el-input,.side-panel-body .el-select,.side-panel-body .el-input-number,.side-panel-body .el-textarea,.side-panel-body .el-segmented,.dialog-content .el-input,.dialog-content .el-select,.dialog-content .el-input-number,.dialog-content .el-textarea,.dialog-content .el-segmented,.form-wrapper .el-input,.form-wrapper .el-select,.form-wrapper .el-input-number,.form-wrapper .el-textarea,.form-wrapper .el-segmented,.el-dialog .el-form .el-input,.el-dialog .el-form .el-select,.el-dialog .el-form .el-input-number,.el-dialog .el-form .el-textarea,.el-dialog .el-form .el-segmented{width:100%;max-width:100%}.side-panel-body .form-item-with-tag,.side-panel-body .expression-select-wrapper,.side-panel-body .template-config-wrapper,.dialog-content .form-item-with-tag,.dialog-content .expression-select-wrapper,.dialog-content .template-config-wrapper,.form-wrapper .form-item-with-tag,.form-wrapper .expression-select-wrapper,.form-wrapper .template-config-wrapper,.el-dialog .el-form .form-item-with-tag,.el-dialog .el-form .expression-select-wrapper,.el-dialog .el-form .template-config-wrapper{flex-wrap:wrap;min-width:0}.side-panel-body .form-item-with-tag>.el-input,.side-panel-body .form-item-with-tag>.el-select,.side-panel-body .form-item-with-tag>.el-input-number,.side-panel-body .expression-select-wrapper>.el-select,.dialog-content .form-item-with-tag>.el-input,.dialog-content .form-item-with-tag>.el-select,.dialog-content .form-item-with-tag>.el-input-number,.dialog-content .expression-select-wrapper>.el-select,.form-wrapper .form-item-with-tag>.el-input,.form-wrapper .form-item-with-tag>.el-select,.form-wrapper .form-item-with-tag>.el-input-number,.form-wrapper .expression-select-wrapper>.el-select,.el-dialog .el-form .form-item-with-tag>.el-input,.el-dialog .el-form .form-item-with-tag>.el-select,.el-dialog .el-form .form-item-with-tag>.el-input-number,.el-dialog .el-form .expression-select-wrapper>.el-select{flex:180px;min-width:0}.side-panel-body .modified-tag,.dialog-content .modified-tag,.form-wrapper .modified-tag,.el-dialog .el-form .modified-tag{flex:none}.dialog-content{max-height:70vh}.expression-params .param-item{flex-direction:column;align-items:stretch}.expression-params .param-item .param-label{white-space:normal;min-width:0}}@media (width<=575px){.header-username,.header__status-text,.header__uptime,.header-breadcrumb{display:none}.data-grid-toolbar,.studio-toolbar,.data-grid-pagination,.data-grid-pagination.is-left,.data-grid-pagination.is-center,.data-grid-pagination.is-right{padding:var(--spacing-2)}.data-grid-pagination .el-pager li{min-width:26px}.el-drawer{width:100vw!important}.el-overlay-dialog{padding:var(--spacing-2)}.el-dialog:not(.is-fullscreen){max-height:calc(100dvh - var(--spacing-4));width:calc(100vw - var(--spacing-4))!important;margin:0 auto!important}.side-panel-body,.form-wrapper{padding:var(--spacing-3)}.side-panel-footer,.panel-footer,.dialog-footer,.el-dialog__footer,.el-message-box__btns{flex-wrap:wrap;justify-content:stretch;display:flex}.side-panel-footer .el-button,.panel-footer .el-button,.dialog-footer .el-button,.el-dialog__footer .el-button,.el-message-box__btns .el-button{flex:120px;margin-left:0}.dialog-content{max-height:75vh}.el-popper.el-picker__popper{max-height:calc(100dvh - var(--spacing-4));overflow-y:auto;left:var(--spacing-2)!important;right:auto!important;top:var(--spacing-2)!important;max-width:calc(100vw - var(--spacing-6))!important;transform:none!important}.el-date-range-picker,.el-date-picker,.el-date-range-picker.has-time{max-height:calc(100dvh - var(--spacing-4));overflow:hidden auto;width:calc(100vw - var(--spacing-6))!important;min-width:0!important;max-width:calc(100vw - var(--spacing-6))!important}.el-date-range-picker .el-picker-panel__body-wrapper,.el-date-range-picker .el-picker-panel__body,.el-date-range-picker .el-date-range-picker__time-header,.el-date-range-picker .el-picker-panel__footer,.el-date-picker .el-picker-panel__body-wrapper,.el-date-picker .el-picker-panel__body,.el-date-picker .el-date-picker__time-header,.el-date-picker .el-picker-panel__content,.el-date-picker .el-picker-panel__footer{box-sizing:border-box;width:100%!important;min-width:0!important}.el-date-range-picker .el-picker-panel__body{flex-direction:column;display:flex}.el-date-range-picker .el-date-range-picker__time-header,.el-date-picker .el-date-picker__time-header{gap:var(--spacing-2);padding:var(--spacing-2);flex-wrap:wrap;display:flex}.el-date-range-picker .el-date-range-picker__time-header>.el-icon{display:none}.el-date-range-picker .el-date-range-picker__editor{flex:1 1 calc(50% - var(--spacing-2));min-width:0;width:auto!important}.el-date-picker .el-date-picker__editor-wrap{flex:120px;max-width:100%}.el-date-range-picker .el-date-range-picker__content{box-sizing:border-box;min-width:0;float:none!important;width:100%!important}.el-date-range-picker .el-date-range-picker__content.is-right{border-left:0;border-top:1px solid var(--el-border-color-lighter)}.el-date-range-picker .el-date-range-picker__header,.el-date-range-picker .el-date-table,.el-date-picker .el-date-picker__header,.el-date-picker .el-date-table{width:100%!important}.el-date-picker .el-date-table{table-layout:fixed}.el-date-range-picker .el-picker-panel__footer,.el-date-picker .el-picker-panel__footer{justify-content:flex-end;gap:var(--spacing-2);flex-wrap:wrap;display:flex}.el-time-panel{max-width:calc(100vw - var(--spacing-6))}}.app-header{--app-header-control-size:28px;height:48px;padding:0 var(--spacing-6);background-color:var(--bg-component);border-bottom:1px solid var(--border-lighter);align-items:center;gap:var(--spacing-4);flex-shrink:0;display:flex}.header-left{align-items:center;gap:var(--spacing-3);flex:1;min-width:0;display:flex}.header-right{align-items:center;gap:var(--spacing-3);flex-shrink:0;display:flex}html:root .icon-action-button{flex:0 0 var(--icon-action-size,32px);width:var(--icon-action-size,32px);min-width:var(--icon-action-size,32px);height:var(--icon-action-height,30px)!important;margin-left:0!important;padding:0!important}html:root .icon-action-button .el-icon{margin:0;font-size:15px}html:root .el-button:has(>.el-icon:only-child):not(.is-link):not(.is-circle){flex:0 0 var(--icon-action-size,32px);width:var(--icon-action-size,32px);min-width:var(--icon-action-size,32px);margin-left:0;padding:0}html:root .el-button:has(>.el-icon:only-child):not(.is-link):not(.is-circle) .el-icon{margin:0}:where(.data-grid-toolbar-right,.panel-tools,.toolbar-right,.detail-actions,.header-right,.header-actions,.studio-toolbar__actions,.node-actions,.panel-actions,.toolbar-actions,.card-actions,.section-header,.license-config__header,.auto-refresh-control,[class*=__actions],[class$=-actions]){gap:var(--spacing-2)}:where(.data-grid-toolbar-right,.panel-tools,.toolbar-right,.detail-actions,.header-right,.header-actions,.studio-toolbar__actions,.node-actions,.panel-actions,.toolbar-actions,.card-actions,.section-header,.license-config__header,.auto-refresh-control,[class*=__actions],[class$=-actions]) .el-button{margin-left:0}:where(.data-grid-toolbar-right,.panel-tools,.toolbar-right,.detail-actions,.header-right,.header-actions,.studio-toolbar__actions,.node-actions,.panel-actions,.toolbar-actions,.card-actions,.section-header,.license-config__header,.auto-refresh-control,[class*=__actions],[class$=-actions]) .el-button:has(>.el-icon:only-child){flex:0 0 var(--icon-action-size,32px);width:var(--icon-action-size,32px);min-width:var(--icon-action-size,32px);padding:0}.header-mobile-menu{color:var(--text-regular);cursor:pointer;transition:color var(--transition-fast);font-size:22px;display:none}.header-mobile-menu:hover{color:var(--brand-primary)}.header-breadcrumb{align-items:center;gap:var(--spacing-2);font-size:var(--font-size-md);color:var(--text-secondary);text-overflow:ellipsis;min-width:0;display:flex;overflow:hidden}.header-breadcrumb .is-current{color:var(--text-primary);font-weight:var(--font-weight-medium)}.header-user{align-items:center;gap:var(--spacing-2);padding:var(--spacing-1) var(--spacing-2);border-radius:var(--radius-sm);cursor:pointer;transition:background-color var(--transition-fast);display:inline-flex}.header-user:hover{background-color:var(--bg-hover)}.header-user-avatar{width:var(--app-header-control-size,28px);height:var(--app-header-control-size,28px);border-radius:var(--radius-full);background-color:var(--brand-primary);color:var(--brand-on-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.header-username{font-size:var(--font-size-sm);color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;max-width:120px;overflow:hidden}.app-sidebar{width:var(--layout-sidebar-width,200px);background-color:var(--sidebar-bg);border-right:1px solid var(--sidebar-border);height:100vh;z-index:var(--z-sidebar);flex-direction:column;flex-shrink:0;display:flex}.app-sidebar.is-collapsed{width:var(--layout-sidebar-collapsed-width,64px)}.app-sidebar.is-collapsed .sidebar-logo{justify-content:center;padding:0}.app-sidebar.is-collapsed .sidebar-menu-tree.el-menu--collapse{width:var(--layout-sidebar-collapsed-width,64px)}.app-sidebar.is-collapsed .sidebar-menu-tree.el-menu--collapse .el-menu-item,.app-sidebar.is-collapsed .sidebar-menu-tree.el-menu--collapse .el-sub-menu__title{justify-content:center;padding:0}.app-sidebar.is-collapsed .sidebar-menu-tree.el-menu--collapse .sidebar-menu-item-icon{margin-right:0;font-size:22px}.app-sidebar.is-collapsed .sidebar-menu-item{white-space:nowrap;justify-content:center;gap:0;padding:0;overflow:hidden}.app-sidebar.is-collapsed .sidebar-menu-item .sidebar-menu-item-icon{font-size:22px}.app-sidebar.is-collapsed .sidebar__footer{padding:var(--spacing-2)}.sidebar-logo{align-items:center;gap:var(--spacing-3);height:48px;padding:0 var(--spacing-5);background-color:var(--sidebar-logo-bg);border-bottom:1px solid var(--sidebar-border);flex-shrink:0;display:flex}.sidebar-logo-img{flex-shrink:0;width:24px;height:24px}.sidebar-logo-info{flex-direction:column;gap:2px;min-width:0;display:flex}.sidebar-logo-name{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);color:var(--sidebar-text-hover);text-overflow:ellipsis;white-space:nowrap;line-height:1.2;overflow:hidden}.sidebar-logo-version{font-size:var(--font-size-xs);color:var(--sidebar-text)}.sidebar-menu{padding:var(--spacing-3) 0;flex:1;overflow:hidden auto}.sidebar-menu::-webkit-scrollbar{width:4px}.sidebar-menu::-webkit-scrollbar-thumb{background:var(--sidebar-border)}.sidebar-menu-tree{--el-menu-bg-color:transparent;--el-menu-hover-bg-color:var(--sidebar-bg-hover);--el-menu-active-color:var(--sidebar-text-active);--el-menu-text-color:var(--sidebar-text);--el-menu-item-height:48px;--el-menu-sub-item-height:48px;--el-menu-base-level-padding:20px;--el-menu-level-padding:14px;background-color:#0000;border-right:none;width:100%}.sidebar-menu-tree.el-menu{border-right:none}.sidebar-menu-tree .el-menu{background-color:#0000}.sidebar-menu-tree .el-menu-item,.sidebar-menu-tree .el-sub-menu__title{height:48px;color:var(--sidebar-text);transition:all var(--transition-base);position:relative}.sidebar-menu-tree .el-menu-item:hover,.sidebar-menu-tree .el-sub-menu__title:hover{color:var(--sidebar-text-hover);background-color:var(--sidebar-bg-hover)}.sidebar-menu-tree .el-menu-item.is-active{color:var(--sidebar-text-active);background-color:var(--sidebar-bg-active)}.sidebar-menu-tree .el-menu-item.is-active:before{content:"";background-color:var(--sidebar-text-active);width:3px;position:absolute;top:0;bottom:0;left:0}.sidebar-menu-tree .el-sub-menu.is-active>.el-sub-menu__title{color:var(--sidebar-text-hover)}.sidebar-menu-tree .el-sub-menu__icon-arrow{color:var(--sidebar-text)}.sidebar-menu-item{align-items:center;gap:var(--spacing-4);height:48px;padding:0 var(--spacing-5);color:var(--sidebar-text);cursor:pointer;transition:all var(--transition-base);display:flex;position:relative}.sidebar-menu-item:hover{background-color:var(--sidebar-bg-hover);color:var(--sidebar-text-hover)}.sidebar-menu-item.is-active{background-color:var(--sidebar-bg-active);color:var(--sidebar-text-active)}.sidebar-menu-item.is-active:before{content:"";background-color:var(--sidebar-text-active);width:3px;position:absolute;top:0;bottom:0;left:0}.sidebar-menu-item-icon{margin-right:var(--spacing-4);flex-shrink:0;font-size:20px}.sidebar-menu-item-text{font-size:var(--font-size-md);font-weight:var(--font-weight-medium);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.sidebar-footer-slot{padding:var(--spacing-2) var(--spacing-3);flex-shrink:0}.sidebar-mobile-drawer .el-drawer__body{padding:0}.sidebar-mobile{background-color:var(--sidebar-bg);flex-direction:column;height:100%;display:flex}.sidebar-mobile-header{align-items:center;gap:var(--spacing-3);height:48px;padding:0 var(--spacing-5);background-color:var(--sidebar-logo-bg);border-bottom:1px solid var(--sidebar-border);display:flex}.sidebar-mobile-logo{width:24px;height:24px}.sidebar-mobile-title{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);color:var(--sidebar-text-hover)}.sidebar-mobile-menu{padding:var(--spacing-3) 0;flex:1;overflow-y:auto}.sidebar-menu-tree--mobile{border-right:0}.sidebar-mobile-item{align-items:center;gap:var(--spacing-3);height:44px;padding:0 var(--spacing-5);color:var(--sidebar-text);cursor:pointer;transition:all var(--transition-base);display:flex}.sidebar-mobile-item:hover{background-color:var(--sidebar-bg-hover);color:var(--sidebar-text-hover)}.sidebar-mobile-item.is-active{background-color:var(--sidebar-bg-active);color:var(--sidebar-text-active)}.workspace-layout{width:100%;height:100vh;display:flex;overflow:hidden}.workspace-main{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.workspace-content{padding:var(--spacing-page-y) var(--spacing-page-x);background-color:var(--bg-page);flex:1;position:relative;overflow-y:auto}.studio-page-header__icon{font-size:var(--font-size-lg);color:var(--brand-primary);flex-shrink:0}.login-card__oauth2{margin-top:var(--spacing-4)}.login-card__divider-text{font-size:var(--font-size-xs);color:var(--text-secondary)}.login-card__oauth2-buttons{gap:var(--spacing-3);flex-direction:column;display:flex}.login-card__oauth2-btn{justify-content:center;align-items:center;gap:var(--spacing-2);width:100%;height:40px;font-size:var(--font-size-sm);border-radius:var(--radius-sm);display:inline-flex}.login-card__oauth2-icon{margin-right:var(--spacing-1);flex-shrink:0}@media (width<=767px){.app-sidebar{display:none}.header-mobile-menu{display:inline-flex}.workspace-content{padding:var(--spacing-3)}}@media (width<=575px){.header-username{display:none}}.header-user-menu__danger{color:var(--status-danger)!important}.gateway-status,.data-forward-page,.rule-engine-page,.settings-page,.scripts-page,.custom-nodes-page,.plugin-page,.certificate-page,.gateway-data-page,.gateway-alarm-page,.log-page,.user-page,.role-page,.menu-page{background-color:var(--bg-component);border:1px solid var(--border-extra-light);border-radius:var(--radius-md);overflow:hidden}html[data-density=compact]{--spacing-1:2px;--spacing-2:4px;--spacing-3:8px;--spacing-4:12px;--spacing-5:16px;--spacing-6:20px;--spacing-8:24px;--spacing-10:32px;--spacing-page-x:var(--spacing-3);--spacing-page-y:var(--spacing-3);--spacing-card-padding:var(--spacing-3);--spacing-section-gap:var(--spacing-4);--spacing-element-gap:var(--spacing-2);--el-component-size:28px;--el-input-height:28px;--el-component-size-small:24px;--el-component-size-default:28px;--el-component-size-large:36px;--el-font-size-base:var(--font-size-sm);--el-form-item-margin-bottom:12px}html[data-density=compact] .app-sidebar .sidebar-menu-tree{--el-menu-item-height:40px;--el-menu-sub-item-height:40px}html[data-density=compact] .app-sidebar .sidebar-menu-tree .el-menu-item,html[data-density=compact] .app-sidebar .sidebar-menu-tree .el-sub-menu__title,html[data-density=compact] .app-sidebar .sidebar-menu-item,html[data-density=compact] .sidebar-logo{height:40px}html[data-density=compact] .sidebar__collapse-btn{height:36px}html[data-density=compact] .app-header{--app-header-control-size:24px;height:40px}html[data-density=compact] .el-button{height:var(--el-component-size-default);font-size:var(--font-size-sm);padding:0 12px}html[data-density=compact] .el-button.el-button--small{height:var(--el-component-size-small);min-height:var(--el-component-size-small);padding:0 8px}html[data-density=compact] .el-button--small{padding:0 8px}html[data-density=compact] .el-button--large{height:var(--el-component-size-large);padding:0 16px}html[data-density=compact] .el-button.is-circle{width:var(--el-component-size-default);padding:0}html[data-density=compact] .el-button.el-button--small.is-circle{width:var(--el-component-size-small)}html[data-density=compact] .el-button .el-icon+span{margin-left:4px}html[data-density=compact] .el-input{height:var(--el-component-size-default);font-size:var(--font-size-sm)}html[data-density=compact] .el-input.el-input--small{height:var(--el-component-size-small)}html[data-density=compact] .el-input.el-input--large{height:var(--el-component-size-large)}html[data-density=compact] .el-input__wrapper{min-height:var(--el-component-size-default);padding:0 8px}html[data-density=compact] .el-input__inner{height:var(--el-component-size-default);line-height:var(--el-component-size-default)}html[data-density=compact] .el-textarea__inner{padding:6px 8px}html[data-density=compact] .el-input-number{height:var(--el-component-size-default)}html[data-density=compact] .el-input-number .el-input__wrapper{padding-left:8px;padding-right:32px}html[data-density=compact] .el-select{--el-select-input-font-size:var(--font-size-sm);min-height:var(--el-component-size-default);line-height:var(--el-component-size-default)}html[data-density=compact] .el-select.el-select--small{min-height:var(--el-component-size-small);line-height:var(--el-component-size-small)}html[data-density=compact] .el-select__wrapper{height:var(--el-component-size-default);min-height:var(--el-component-size-default);font-size:var(--font-size-sm);line-height:var(--el-component-size-default);padding:0 8px}html[data-density=compact] .el-select--small .el-select__wrapper{height:var(--el-component-size-small);min-height:var(--el-component-size-small);line-height:var(--el-component-size-small)}html[data-density=compact] .el-select__placeholder,html[data-density=compact] .el-select__selected-item{line-height:1}html[data-density=compact] .el-form-item__label{padding-bottom:2px;line-height:28px}html[data-density=compact] .el-table .el-table__cell{padding:3px 0}html[data-density=compact] .el-table .cell{padding:0 8px;line-height:1.4}html[data-density=compact] .el-table .el-table__header th .cell{padding:0 8px}html[data-density=compact] .el-card .el-card__header{padding:var(--spacing-3) var(--spacing-4)}html[data-density=compact] .el-card .el-card__body{padding:var(--spacing-4)}html[data-density=compact] .el-dropdown-menu__item{min-height:32px;padding:6px 12px}html[data-density=compact] .el-dialog .el-dialog__header{padding:var(--spacing-4) var(--spacing-5);margin-bottom:0}html[data-density=compact] .el-dialog .el-dialog__body{padding:var(--spacing-4) var(--spacing-5)}html[data-density=compact] .el-dialog .el-dialog__footer{padding:var(--spacing-3) var(--spacing-5)}html[data-density=compact] .el-drawer__header{margin-bottom:var(--spacing-3);padding:var(--spacing-4) var(--spacing-5)}html[data-density=compact] .el-drawer__body{padding:var(--spacing-4)}html[data-density=compact] .el-switch{height:20px;line-height:20px}html[data-density=compact] .el-switch .el-switch__label{height:20px;font-size:var(--font-size-xs)}html[data-density=compact] .el-switch .el-switch__core{border-radius:10px;min-width:32px;height:20px}html[data-density=compact] .el-switch .el-switch__core .el-switch__button{width:14px;height:14px}html[data-density=compact] .el-tag{height:20px;line-height:18px;font-size:var(--font-size-xs);padding:0 6px}html[data-density=compact] .el-pagination{--el-pagination-button-height:var(--el-component-size-default);--el-pagination-button-width:var(--el-component-size-default);--el-pagination-font-size:var(--font-size-sm);gap:var(--spacing-1)}html[data-density=compact] .el-pagination button,html[data-density=compact] .el-pagination span:not([class*=suffix]),html[data-density=compact] .el-pagination .el-pagination__sizes,html[data-density=compact] .el-pagination .el-pagination__jump,html[data-density=compact] .el-pagination .el-pagination__total{height:var(--el-component-size-default);line-height:var(--el-component-size-default);font-size:var(--font-size-sm)}html[data-density=compact] .el-pagination .el-pagination__btn,html[data-density=compact] .el-pagination .el-pager li{min-width:28px;height:28px;line-height:28px}html[data-density=compact] .el-pagination .el-input__wrapper{padding:0 4px}html[data-density=compact] .el-pagination .el-select{min-height:var(--el-component-size-default)}html[data-density=compact] .el-pagination .el-select__wrapper{height:var(--el-component-size-default);min-height:var(--el-component-size-default)}html[data-density=compact] .el-radio-button__inner{height:var(--el-component-size-default);line-height:var(--el-component-size-default);padding:0 12px}html[data-density=compact] .el-checkbox{height:28px}html[data-density=compact] .el-checkbox .el-checkbox__label{padding-left:6px}html[data-density=compact] .el-descriptions .el-descriptions__label,html[data-density=compact] .el-descriptions .el-descriptions__content{padding:6px 10px}html[data-density=compact] .el-tabs__item{height:36px;padding:0 12px;line-height:36px}html[data-density=compact] .el-message{min-width:auto;padding:8px 12px}html[data-density=compact] .el-message-box .el-message-box__header{padding:var(--spacing-4) var(--spacing-5)}html[data-density=compact] .el-message-box .el-message-box__content,html[data-density=compact] .el-message-box .el-message-box__btns{padding:var(--spacing-3) var(--spacing-5)}html[data-density=compact] .el-upload-dragger{padding:var(--spacing-4)}html[data-density=compact] .el-popper{padding:6px 10px}html[data-density=compact] .stat-card{padding:var(--spacing-4);min-height:80px}html[data-density=compact] .tunnel-card,html[data-density=compact] .status-banner{padding:var(--spacing-4)}html[data-density=compact] .log-stream__toolbar{padding:var(--spacing-2) var(--spacing-3)}html[data-density=compact] .log-stream__body{padding:var(--spacing-2) var(--spacing-3);line-height:1.5}html[data-density=compact] .side-panel__header{padding:var(--spacing-4) var(--spacing-5)}html[data-density=compact] .side-panel__body{padding:var(--spacing-4)}html[data-density=compact] .side-panel__footer{padding:var(--spacing-4) var(--spacing-5)}html[data-density=compact] .settings-page__nav-item{height:36px;padding:0 var(--spacing-3)}html[data-density=compact] .settings-page__content{padding:var(--spacing-4)}html[data-density=compact] .settings-page__footer{padding:var(--spacing-3) var(--spacing-5)}html[data-density=compact] .empty-state{padding:var(--spacing-4) var(--spacing-3)}html[data-density=compact] .app-header{--app-header-control-size:24px;height:40px;padding:0 var(--spacing-5)}html[data-density=compact] .header-user{padding:0 var(--spacing-1);gap:var(--spacing-1)}html[data-density=compact] .header-user-avatar{width:var(--app-header-control-size);height:var(--app-header-control-size);font-size:var(--font-size-xs)}html[data-density=compact] .header-username{font-size:var(--font-size-xs);max-width:96px}html[data-density=compact] .header-mobile-menu{font-size:18px}html[data-density=compact] .sidebar-logo{height:40px;padding:0 var(--spacing-4)}html[data-density=compact] .sidebar-logo .sidebar-logo-img{width:20px;height:20px}html[data-density=compact] .sidebar-logo-name{font-size:var(--font-size-sm)}html[data-density=compact] .sidebar-menu{padding:var(--spacing-2) 0}html[data-density=compact] .sidebar-menu-tree{--el-menu-item-height:40px;--el-menu-sub-item-height:40px}html[data-density=compact] .sidebar-menu-tree .el-menu-item,html[data-density=compact] .sidebar-menu-tree .el-sub-menu__title{height:40px}html[data-density=compact] .sidebar-menu-tree .sidebar-menu-item-icon{margin-right:var(--spacing-3);font-size:18px}html[data-density=compact] .sidebar-menu-item{height:40px;padding:0 var(--spacing-4);gap:var(--spacing-3)}html[data-density=compact] .sidebar-menu-item .sidebar-menu-item-icon{font-size:18px}html[data-density=compact] .sidebar-menu-item-text{font-size:var(--font-size-sm)}html[data-density=compact] .sidebar__collapse-btn{height:36px;padding:0 var(--spacing-3)}html[data-density=compact] .sidebar-mobile-header{height:40px;padding:0 var(--spacing-4)}html[data-density=compact] .sidebar-mobile-logo{width:20px;height:20px}html[data-density=compact] .sidebar-mobile-item{height:38px;padding:0 var(--spacing-4);font-size:var(--font-size-sm)}html[data-density=compact] .workspace-content{padding:var(--spacing-4) var(--spacing-5)}html[data-density=compact] .app-tabbar{--layout-tabbar-height:30px;padding:0 var(--spacing-1);gap:2px}html[data-density=compact] .tabbar-scroll{padding:0 var(--spacing-2);gap:2px}html[data-density=compact] .tabbar-scroll-btn{width:20px;height:20px}html[data-density=compact] .tabbar-scroll-btn .el-icon{font-size:var(--font-size-xs)}html[data-density=compact] .tabbar-item{height:22px;padding:0 var(--spacing-3);font-size:var(--font-size-sm);gap:var(--spacing-1)}html[data-density=compact] .tabbar-item .tabbar-item-text{max-width:120px}html[data-density=compact] .tabbar-item.is-active:before{width:5px;height:5px}html[data-density=compact] .tabbar-item-close{width:14px;height:14px;font-size:var(--font-size-xs)}html[data-density=compact] .tabbar-actions{padding:0 var(--spacing-2)}html[data-density=compact] .tabbar-actions .tabbar-action-btn{width:22px;height:22px}html[data-density=compact] .tabbar-context-menu{min-width:120px;padding:2px 0}html[data-density=compact] .tabbar-context-item{padding:var(--spacing-1) var(--spacing-3);font-size:var(--font-size-sm)}html[data-density=compact] .studio-page-header{padding:var(--spacing-3) var(--spacing-5)}html[data-density=compact] .studio-page-header__title{font-size:var(--font-size-lg);gap:var(--spacing-2)}html[data-density=compact] .studio-page-header__title:before{height:16px}html[data-density=compact] .studio-page-header__icon{font-size:var(--font-size-md)}html[data-density=compact] .studio-page-header__help{font-size:var(--font-size-sm)}html[data-density=compact] .studio-page-header__count{height:18px}html[data-density=compact] .studio-toolbar{padding:var(--spacing-2) var(--spacing-4);gap:var(--spacing-3)}html[data-density=compact] .studio-toolbar__filters,html[data-density=compact] .studio-toolbar__actions{gap:var(--spacing-2)}html[data-density=compact] .page-tabs{padding:var(--spacing-2) var(--spacing-4) 0;gap:2px}html[data-density=compact] .page-tab{padding:var(--spacing-1) var(--spacing-3);font-size:var(--font-size-sm)}html[data-density=compact] .page-tab.is-active:after{height:1px}html[data-density=compact] .page-tab .tab-badge{min-width:16px;height:16px;font-size:var(--font-size-xs)}html[data-density=compact] .panel-content{padding:var(--spacing-2) var(--spacing-4) var(--spacing-4)}html[data-density=compact] .panel-footer{padding:var(--spacing-3) var(--spacing-4);gap:var(--spacing-2)}html[data-density=compact] .form-wrapper{padding:var(--spacing-4)}html[data-density=compact] .toolbar-input{width:160px}html[data-density=compact] .toolbar-select{width:140px}html[data-density=compact] .toolbar-select-sm{width:100px}html[data-density=compact] .data-grid-toolbar{padding:var(--spacing-2) var(--spacing-4);gap:var(--spacing-3)}html[data-density=compact] .data-grid-toolbar .data-grid-toolbar-title{font-size:var(--font-size-sm)}html[data-density=compact] .data-grid-pagination{padding:var(--spacing-2) var(--spacing-4);gap:var(--spacing-3)}html[data-density=compact] .data-grid-pagination .data-grid-pagination-info{font-size:var(--font-size-xs)}html[data-density=compact] .data-grid-empty{padding:var(--spacing-8) var(--spacing-5)}html[data-density=compact] .data-grid-empty .data-grid-empty-icon{font-size:36px}html[data-density=compact] .status-dot{width:6px;height:6px}html[data-density=compact] .status-dot--md{width:7px;height:7px}html[data-density=compact] .status-dot--lg{width:10px;height:10px}html[data-density=compact] .status-label{font-size:var(--font-size-xs)}html[data-density=compact] .overview-page,html[data-density=compact] .overview-panels{gap:var(--spacing-3)}html[data-density=compact] .overview-panel{padding:var(--spacing-4)}html[data-density=compact] .overview-panel .overview-panel__header{margin-bottom:var(--spacing-3)}html[data-density=compact] .dashboard-page__log-section{height:280px}html[data-density=compact] .dashboard-page__actions{padding:var(--spacing-3) var(--spacing-4)}html[data-density=compact] .settings-nav-item{height:36px;padding:0 var(--spacing-3);font-size:var(--font-size-sm)}html[data-density=compact] .settings-content{padding:var(--spacing-4)}html[data-density=compact] .settings-sidebar{width:180px}html[data-density=compact] .gateway-status{gap:var(--spacing-3)}html[data-density=compact] .tree-panel .tree-header{padding:var(--spacing-3) var(--spacing-4)}html[data-density=compact] .tree-panel .tree-content{padding:var(--spacing-1)}html[data-density=compact] .tree-search{padding:var(--spacing-2)}html[data-density=compact] .tree-node .node-status-dot{width:6px;height:6px}html[data-density=compact] .tree-node .node-icon{font-size:var(--font-size-sm)}html[data-density=compact] .tree-node .node-count{min-width:16px;height:16px;font-size:var(--font-size-xs)}html[data-density=compact] .gateway-status .content-panel .data-grid-toolbar,html[data-density=compact] .gateway-status .tree-panel .data-grid-toolbar,html[data-density=compact] .gateway-status .mobile-content .data-grid-toolbar{padding:var(--spacing-2) var(--spacing-4)}html[data-density=compact] .gateway-status .content-panel .data-grid-toolbar .data-grid-toolbar-left,html[data-density=compact] .gateway-status .content-panel .data-grid-toolbar .data-grid-toolbar-right,html[data-density=compact] .gateway-status .tree-panel .data-grid-toolbar .data-grid-toolbar-left,html[data-density=compact] .gateway-status .tree-panel .data-grid-toolbar .data-grid-toolbar-right,html[data-density=compact] .gateway-status .mobile-content .data-grid-toolbar .data-grid-toolbar-left,html[data-density=compact] .gateway-status .mobile-content .data-grid-toolbar .data-grid-toolbar-right{gap:var(--spacing-2)}html[data-density=compact] .gateway-status .content-panel .data-grid-pagination,html[data-density=compact] .gateway-status .tree-panel .data-grid-pagination,html[data-density=compact] .gateway-status .mobile-content .data-grid-pagination{padding:var(--spacing-2) var(--spacing-3)}html[data-density=compact] .gateway-status .content-panel .batch-bar,html[data-density=compact] .gateway-status .tree-panel .batch-bar,html[data-density=compact] .gateway-status .mobile-content .batch-bar{padding:var(--spacing-1) var(--spacing-4)}html[data-density=compact] .rule-card .data-grid-toolbar,html[data-density=compact] .script-list-card .data-grid-toolbar,html[data-density=compact] .node-list-card .data-grid-toolbar,html[data-density=compact] .gateway-status .data-grid-toolbar,html[data-density=compact] .gateway-status .tree-header,html[data-density=compact] .log-panel-filters{min-height:36px;padding:var(--spacing-2) var(--spacing-4);gap:var(--spacing-3)}html[data-density=compact] .rule-card .filter-title,html[data-density=compact] .script-list-card .filter-title,html[data-density=compact] .node-list-card .filter-title,html[data-density=compact] .gateway-status .data-grid-toolbar-title{font-size:var(--font-size-sm);gap:var(--spacing-1)}html[data-density=compact] .rule-card .data-grid-pagination,html[data-density=compact] .script-list-card .data-grid-pagination,html[data-density=compact] .node-list-card .data-grid-pagination,html[data-density=compact] .gateway-status .data-grid-pagination{min-height:36px;padding:var(--spacing-2) var(--spacing-4)}html[data-density=compact] .rule-card .tab-bar,html[data-density=compact] .script-list-card .tab-bar,html[data-density=compact] .node-list-card .tab-bar{padding:0 var(--spacing-4)}html[data-density=compact] .rule-card .el-table th.el-table__cell,html[data-density=compact] .script-list-card .el-table th.el-table__cell,html[data-density=compact] .node-list-card .el-table th.el-table__cell,html[data-density=compact] .gateway-status .el-table th.el-table__cell,html[data-density=compact] .rule-card .el-table td.el-table__cell,html[data-density=compact] .script-list-card .el-table td.el-table__cell,html[data-density=compact] .node-list-card .el-table td.el-table__cell,html[data-density=compact] .gateway-status .el-table td.el-table__cell{padding:var(--spacing-2) 0}html[data-density=compact] .detail-overlay .detail-header,html[data-density=compact] .detail-overlay .editor-header,html[data-density=compact] .detail-overlay .node-detail-header{min-height:44px;padding:0 var(--spacing-4);gap:var(--spacing-3)}html[data-density=compact] .detail-overlay .detail-content,html[data-density=compact] .detail-overlay .editor-content,html[data-density=compact] .detail-overlay .node-detail-content{padding:var(--spacing-4)}html[data-density=compact] .debug-base{padding:var(--spacing-2)}html[data-density=compact] .debug-tabs .el-tabs__header{padding:0 var(--spacing-3)}html[data-density=compact] .debug-tabs .el-tabs__content{padding:var(--spacing-3)}html[data-density=compact] .dialog-content{padding:var(--spacing-3) var(--spacing-1) var(--spacing-1) 0}html[data-density=compact] .login-card__oauth2{margin-top:var(--spacing-3)}html[data-density=compact] .login-card__oauth2-buttons{gap:var(--spacing-2)}html[data-density=compact] .login-card__oauth2-btn{height:36px;font-size:var(--font-size-xs)}
