.dashboard-placeholder[data-v-15d5bad7]{border:1px solid var(--el-border-color-light);margin-top:8px}.dashboard-placeholder__body[data-v-15d5bad7]{text-align:center;flex-direction:column;align-items:center;gap:12px;padding:48px 24px;display:flex}.dashboard-placeholder__icon[data-v-15d5bad7]{color:var(--cc-primary)}.dashboard-placeholder__body h2[data-v-15d5bad7]{color:var(--cc-color-text-strong);margin:0;font-size:22px}.dashboard-placeholder__body p[data-v-15d5bad7]{max-width:520px;color:var(--cc-color-text-muted);margin:0;line-height:1.7}.oss-upload-field[data-v-4042bcda]{gap:8px;width:100%;min-width:0;display:grid}.upload-zone[data-v-4042bcda]{color:#334155;cursor:pointer;background:#f8fafc;border:1px dashed #94a3b8;border-radius:8px;place-items:center;gap:6px;width:100%;min-height:96px;padding:16px;display:grid}.upload-zone--compact[data-v-4042bcda]{min-height:72px;padding:12px}.upload-zone small[data-v-4042bcda]{color:#64748b}.upload-zone.dragging[data-v-4042bcda]{border-color:var(--cc-primary);background:#eef2ff}.upload-zone.uploading[data-v-4042bcda]{cursor:wait}.hidden-file[data-v-4042bcda]{display:none}.upload-progress[data-v-4042bcda]{background:#e0e7ff;border-radius:999px;width:min(360px,100%);height:8px;overflow:hidden}.upload-progress i[data-v-4042bcda]{border-radius:inherit;background:var(--cc-primary);height:100%;transition:width .2s;display:block}.uploaded-image-preview[data-v-4042bcda],.uploaded-file[data-v-4042bcda]{background:#fff;border:1px solid #dbe3ef;border-radius:8px;padding:12px}.uploaded-image-preview[data-v-4042bcda]{gap:10px;display:grid}.preview-image[data-v-4042bcda]{object-fit:contain;background:#f1f5f9;border-radius:8px;width:100%;max-height:220px}.preview-actions[data-v-4042bcda]{gap:8px;display:flex}.uploaded-file[data-v-4042bcda]{align-items:center;gap:12px;display:flex}.uploaded-thumb[data-v-4042bcda]{object-fit:cover;border-radius:8px;width:48px;height:48px}.uploaded-meta[data-v-4042bcda]{flex:1;min-width:0}.uploaded-meta strong[data-v-4042bcda],.uploaded-meta small[data-v-4042bcda]{display:block}.breakable[data-v-4042bcda]{word-break:break-all}.upload-error[data-v-4042bcda]{color:#dc2626;margin:0;font-size:13px}.release-dropdown-icon[data-v-85a207d6]{margin-left:4px}.drawer-desc[data-v-5a010794]{color:#64748b;margin:0 0 16px;font-size:13px;line-height:1.6}.drawer-desc[data-v-2c650abf],.drawer-tip[data-v-2c650abf]{color:#64748b;margin:0 0 16px;font-size:13px}.drawer-tip[data-v-2c650abf]{margin-top:4px;margin-bottom:0}.force-tag[data-v-2c650abf]{margin-left:4px}.drawer-desc[data-v-cbcfaea1],.drawer-tip[data-v-cbcfaea1]{color:#64748b;margin:0 0 16px;font-size:13px}.drawer-tip[data-v-cbcfaea1]{margin-top:4px;margin-bottom:0}.force-tag[data-v-cbcfaea1]{margin-left:4px}.mono[data-v-0f9f104a]{color:#334155;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:13px}.setting-value[data-v-0f9f104a]{gap:6px;display:grid}.setting-input[data-v-0f9f104a],.setting-remark[data-v-0f9f104a]{max-width:320px}.setting-hint[data-v-0f9f104a]{color:#64748b;font-size:12px}.mono[data-v-a985fa37]{color:#475569;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:13px}.segment-page-head[data-v-c75f5ea1]{border-bottom:1px solid var(--el-border-color-lighter);justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;padding-bottom:12px;display:flex}.segment-tabs-shell[data-v-c75f5ea1]{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;align-items:center;padding:4px;display:flex}.segment-tabs[data-v-c75f5ea1]{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.segment-tab[data-v-c75f5ea1]{color:#1e293b;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;align-items:center;gap:6px;min-height:32px;padding:0 10px;display:inline-flex}.segment-tab[data-v-c75f5ea1]:hover{background:#fff;border-color:#b7e2df}.segment-tab.active[data-v-c75f5ea1]{color:#0f766e;background:#fff;border-color:#0d9488;box-shadow:0 1px 3px #0f172a0f}.segment-tabs-shell--button[data-v-c75f5ea1]{background:0 0;border:none;padding:0}.segment-tabs-shell--button .segment-tabs[data-v-c75f5ea1]{gap:10px}.segment-tabs-shell--button .segment-tab[data-v-c75f5ea1]{color:#334155;background:#fff;border:1px solid #cbd5e1;border-radius:999px;min-height:36px;padding:0 18px;transition:border-color .15s,background-color .15s,box-shadow .15s,transform .15s,color .15s;box-shadow:0 1px 2px #0f172a0f}.segment-tabs-shell--button .segment-tab[data-v-c75f5ea1]:hover{color:#0f766e;background:#f0fdfa;border-color:#2dd4bf;transform:translateY(-1px);box-shadow:0 3px 10px #0d948824}.segment-tabs-shell--button .segment-tab.active[data-v-c75f5ea1]{color:#0f766e;background:linear-gradient(#fff 0%,#ecfdf5 100%);border-color:#0d9488;transform:translateY(-1px);box-shadow:0 0 0 1px #0d94881f,0 4px 12px #0d94882e}.segment-tabs-shell--button .segment-tab[data-v-c75f5ea1]:focus-visible{outline-offset:2px;outline:2px solid #99f6e4}.segment-tab-icon[data-v-c75f5ea1]{color:#0f766e;background:#e6fffb;border-radius:6px;place-items:center;width:24px;height:24px;display:inline-grid}.segment-tab-label[data-v-c75f5ea1]{font-size:13px;font-weight:700}.segment-page-actions[data-v-c75f5ea1]{flex-shrink:0;align-items:center;gap:8px;display:flex}@media (width<=900px){.segment-page-head[data-v-c75f5ea1]{flex-direction:column;align-items:stretch}}.role-auth-node[data-v-ca05fce5]{min-width:0}.role-auth-node--root[data-v-ca05fce5]{border:1px solid var(--el-border-color-light);background:#fff;border-radius:10px;overflow:hidden}.role-auth-node--root+.role-auth-node--root[data-v-ca05fce5]{margin-top:10px}.role-auth-node__head[data-v-ca05fce5]{background:#f8fafc;align-items:center;gap:8px;min-height:44px;padding:8px 12px;display:flex}.role-auth-node--root>.role-auth-node__head[data-v-ca05fce5]{background:#f1f5f9}.role-auth-node__toggle[data-v-ca05fce5]{color:#64748b;cursor:pointer;background:0 0;border:0;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;padding:0;display:inline-flex}.role-auth-node__toggle[data-v-ca05fce5]:hover{color:#334155;background:#e2e8f0}.role-auth-node__toggle--placeholder[data-v-ca05fce5]{visibility:hidden;pointer-events:none}.role-auth-node__menu-check[data-v-ca05fce5]{flex:1;min-width:0;margin-right:0}.role-auth-node__menu-check[data-v-ca05fce5] .el-checkbox{align-items:center;width:100%;height:auto;margin-right:0}.role-auth-node__menu-check[data-v-ca05fce5] .el-checkbox__label{min-width:0;line-height:1.4}.role-auth-node__menu-text[data-v-ca05fce5]{flex-wrap:wrap;align-items:center;gap:8px;display:inline-flex}.role-auth-node__menu-text strong[data-v-ca05fce5]{color:var(--el-text-color-primary);font-size:14px;font-weight:600}.role-auth-node__path[data-v-ca05fce5]{color:#64748b;background:#fff;border-radius:4px;padding:1px 6px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:11px}.role-auth-node__count[data-v-ca05fce5]{flex-shrink:0}.role-auth-node__body[data-v-ca05fce5]{padding:10px 12px 12px 44px}.role-auth-node__actions[data-v-ca05fce5]{flex-wrap:wrap;gap:8px;margin-bottom:10px;display:flex}.role-auth-node__action[data-v-ca05fce5],.role-auth-node__action[data-v-ca05fce5] .el-checkbox{margin-right:0}.role-auth-node__children[data-v-ca05fce5]{border-left:2px solid #e2e8f0;gap:8px;padding-left:8px;display:grid}.role-auth-node:not(.role-auth-node--root) .role-auth-node__head[data-v-ca05fce5]{background:0 0;padding-left:0;padding-right:0}.role-auth-node:not(.role-auth-node--root) .role-auth-node__body[data-v-ca05fce5]{padding-left:32px}.roles-page-card[data-v-5bcaad37] .el-card__body{flex-direction:column;height:100%;min-height:0;display:flex}.split-panel-card[data-v-5bcaad37]{border:1px solid var(--el-border-color-light);flex-direction:column;min-height:0;display:flex;overflow:hidden}.split-panel-card[data-v-5bcaad37] .el-card__header{padding:14px 16px}.split-panel-card[data-v-5bcaad37] .el-card__body{flex-direction:column;flex:1;gap:12px;min-height:0;padding:14px 16px;display:flex}.panel-title[data-v-5bcaad37]{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.panel-title h2[data-v-5bcaad37]{color:var(--el-text-color-primary);margin:0;font-size:16px;font-weight:700}.panel-title small[data-v-5bcaad37]{color:var(--el-text-color-secondary);margin-top:4px;font-size:12px;line-height:1.5;display:block}.list-toolbar[data-v-5bcaad37]{margin-bottom:0}.device-form-section[data-v-5bcaad37]{border-bottom:1px solid var(--el-border-color-lighter);margin-bottom:18px;padding-bottom:18px}.device-form-section--last[data-v-5bcaad37]{border-bottom:0;margin-bottom:0;padding-bottom:0}.device-form-section__title[data-v-5bcaad37]{color:var(--el-text-color-primary);margin:0;font-size:14px;font-weight:700}.section-title-row[data-v-5bcaad37]{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.section-title-row small[data-v-5bcaad37]{color:var(--el-text-color-secondary);white-space:nowrap;font-size:12px}.user-detail-workbench[data-v-5bcaad37],.user-detail-workbench[data-v-5bcaad37] .el-card__body{overflow:visible}.user-detail-workbench>.user-editor-form[data-v-5bcaad37]{flex:none;overflow:visible}.user-editor-form[data-v-5bcaad37]{flex-direction:column;gap:0;display:flex;position:relative}.editor-form-body[data-v-5bcaad37]{overflow:visible}.editor-form-scroll[data-v-5bcaad37]{flex:1;min-height:0;padding-right:4px;overflow:hidden auto}.editor-form-alert[data-v-5bcaad37]{margin-top:12px}.editor-form-actions[data-v-5bcaad37]{border-top:1px solid var(--el-border-color-lighter);flex-wrap:wrap;flex-shrink:0;justify-content:flex-end;align-items:center;gap:8px;margin-top:12px;padding-top:12px;display:flex}.role-assign-grid[data-v-5bcaad37]{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;width:100%;display:grid}.role-assign-grid[data-v-5bcaad37] .el-checkbox.role-assign-card{width:100%;height:auto;margin-right:0}.role-assign-grid[data-v-5bcaad37] .el-checkbox.role-assign-card.is-bordered{border-radius:8px;align-items:flex-start;width:100%;min-height:72px;margin-right:0;padding:12px 14px;display:flex}.role-assign-grid[data-v-5bcaad37] .el-checkbox.role-assign-card.is-bordered.is-checked{border-color:var(--el-color-primary);background:var(--el-color-primary-light-9)}.role-assign-grid[data-v-5bcaad37] .el-checkbox.role-assign-card .el-checkbox__label{white-space:normal;flex-direction:column;gap:4px;min-width:0;padding-left:8px;line-height:1.45;display:flex}.role-assign-card__code[data-v-5bcaad37]{color:#64748b;word-break:break-all;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:12px;font-weight:600}.role-assign-card__name[data-v-5bcaad37]{color:var(--el-text-color-primary);font-size:14px;font-weight:600}.role-assign-empty[data-v-5bcaad37]{border:1px dashed var(--el-border-color);text-align:center;color:var(--el-text-color-secondary);border-radius:8px;padding:20px 14px;font-size:13px}.role-editor-workspace[data-v-5bcaad37]{border:1px solid var(--el-border-color-light);background:#fff;border-radius:10px;flex-direction:column;height:100%;min-height:0;display:flex;overflow:hidden}.role-editor-workspace__header[data-v-5bcaad37]{border-bottom:1px solid var(--el-border-color-lighter);background:#f8fafc;flex-shrink:0;padding:14px 16px}.role-editor-workspace__header-actions[data-v-5bcaad37]{flex-wrap:wrap;flex-shrink:0;align-items:center;gap:8px;display:flex}.role-editor-workspace__body[data-v-5bcaad37]{flex:1;grid-template-columns:minmax(220px,1fr) minmax(360px,2fr);min-height:0;display:grid;overflow:hidden}.role-section-title[data-v-5bcaad37]{color:var(--el-text-color-primary);margin:0 0 12px;font-size:14px;font-weight:700}.role-basic-section[data-v-5bcaad37]{border-right:1px solid var(--el-border-color-lighter);background:#fff;flex-direction:column;min-height:0;padding:14px 16px;display:flex;overflow-y:auto}.role-basic-section[data-v-5bcaad37] .el-form-item{margin-bottom:16px}.role-auth-section[data-v-5bcaad37]{background:#fcfdfe;flex-direction:column;min-height:0;padding:14px 16px;display:flex;overflow:hidden}.role-auth-section__head[data-v-5bcaad37]{flex-shrink:0;margin-bottom:10px}.role-auth-section__title-row[data-v-5bcaad37]{justify-content:space-between;align-items:center;gap:12px;display:flex}.role-auth-section__title-row .role-section-title[data-v-5bcaad37]{margin:0}.role-auth-section__stats[data-v-5bcaad37]{flex-wrap:wrap;flex-shrink:0;justify-content:flex-end;gap:8px;display:flex}.role-auth-section__hint[data-v-5bcaad37]{color:var(--el-text-color-secondary);margin:4px 0 0;font-size:12px;line-height:1.5}.role-auth-section__toolbar[data-v-5bcaad37]{flex-shrink:0;align-items:center;gap:12px;margin-bottom:10px;display:flex}.role-auth-section__search[data-v-5bcaad37]{flex:1;min-width:0}.role-auth-section__actions[data-v-5bcaad37]{flex-shrink:0;gap:8px;display:flex}.role-auth-section .role-auth-tree-panel[data-v-5bcaad37]{flex:1;min-height:0}.role-editor-workspace__footer[data-v-5bcaad37]{border-top:1px solid var(--el-border-color-lighter);background:#fff;flex-shrink:0;justify-content:flex-end;align-items:center;gap:12px;padding:12px 16px;display:flex}.role-editor-workspace__alert[data-v-5bcaad37]{flex:1;margin:0}.role-list-panel[data-v-5bcaad37]{flex-direction:column;height:100%;min-height:0;display:flex;overflow:hidden}.role-list-panel[data-v-5bcaad37] .el-card__body{flex-direction:column;flex:1;gap:12px;min-height:0;display:flex}.role-list-panel .table-scroll-wrap[data-v-5bcaad37]{flex:1;min-height:0}.role-list-panel[data-v-5bcaad37] .pagination-bar{flex-shrink:0}.role-auth-tree-panel[data-v-5bcaad37]{border:1px solid var(--el-border-color-lighter);background:#fff;border-radius:8px;padding:10px;overflow:auto}.role-auth-tree[data-v-5bcaad37]{flex-direction:column;gap:0;display:flex}.role-enabled-field[data-v-5bcaad37] .el-form-item__content{align-items:center;min-height:32px;display:flex}.user-autofill-trap[data-v-5bcaad37]{opacity:0;pointer-events:none;width:0;height:0;position:absolute}.table-scroll-wrap[data-v-5bcaad37]{flex:auto;min-height:0;overflow:auto}.roles-select-table[data-v-5bcaad37] .el-table__body tr.roles-row-clickable{cursor:pointer}.roles-select-table[data-v-5bcaad37] .el-table__body tr.roles-row-active>td.el-table__cell{background:#ecfdf8!important}@media (width<=900px){.role-assign-grid[data-v-5bcaad37]{grid-template-columns:repeat(2,minmax(0,1fr))}.role-editor-workspace__body[data-v-5bcaad37]{grid-template-columns:1fr}.role-basic-section[data-v-5bcaad37]{border-right:0;border-bottom:1px solid var(--el-border-color-lighter);max-height:280px}.role-auth-section__toolbar[data-v-5bcaad37]{flex-direction:column;align-items:stretch}.role-auth-section__actions[data-v-5bcaad37]{justify-content:flex-end}.role-auth-section .role-auth-tree-panel[data-v-5bcaad37]{min-height:320px}}@media (width<=560px){.role-assign-grid[data-v-5bcaad37]{grid-template-columns:1fr}}.user-account-cell[data-v-5bcaad37]{flex-direction:column;align-items:flex-start;gap:4px;line-height:1.4;display:flex}.user-account-name[data-v-5bcaad37]{font-weight:500}.user-account-lock[data-v-5bcaad37]{color:var(--el-color-danger);align-items:center;gap:6px;display:inline-flex}.user-account-lock small[data-v-5bcaad37]{color:var(--el-text-color-secondary)}.user-lock-alert[data-v-5bcaad37]{margin-bottom:12px}.user-lock-alert__text[data-v-5bcaad37]{color:var(--el-text-color-regular);margin:4px 0 0;line-height:1.6}.compact-detail-workbench[data-v-5bcaad37]{min-height:min(100vh - 280px,640px)}.compact-detail-workbench[data-v-5bcaad37] .el-card__body{flex:1}.compact-editor-form[data-v-5bcaad37]{flex-direction:column;flex:1;min-height:0;display:flex}.compact-editor-form .editor-form-body[data-v-5bcaad37]{flex:1;min-height:0}.compact-editor-form .editor-form-actions[data-v-5bcaad37]{margin-top:auto}.no-access-card[data-v-94599075]{max-width:560px;margin:48px auto}.no-access-body[data-v-94599075]{text-align:center;flex-direction:column;align-items:center;gap:12px;padding:24px 12px;display:flex}.no-access-icon[data-v-94599075]{color:var(--el-color-warning)}.no-access-body h2[data-v-94599075]{margin:0;font-size:20px}.no-access-body p[data-v-94599075]{color:var(--el-text-color-secondary);margin:0;line-height:1.7}.brand-expand-trigger[data-v-4d26946d]{cursor:pointer;border-radius:10px}:root,:root[data-theme=brand-indigo]{--cc-font-family:"Segoe UI", "Microsoft YaHei", Arial, sans-serif;--cc-primary:#5b4cdb;--cc-primary-hover:#4f46e5;--cc-primary-active:#4338ca;--cc-primary-soft:#ede9fe;--cc-accent:#7c6df0;--cc-sidebar-from:#15131f;--cc-sidebar-to:#221f33;--cc-sidebar-text:#c4b5fd;--cc-sidebar-text-active:#f5f3ff;--cc-sidebar-hover:#7c6df029;--cc-sidebar-active:#7c6df03d;--cc-sidebar-accent:#a78bfa;--cc-login-from:#0f0d18;--cc-login-mid:#1a1628;--cc-login-to:#2a2240;--cc-login-glow:#7c6df024;--cc-login-grid:#a78bfa0d;--cc-login-card-border:#a78bfa38;--cc-login-card-head:#5b4cdb1a;--cc-login-eyebrow:#c4b5fd;--cc-color-success:#10b981;--cc-color-warning:#d97706;--cc-color-danger:#dc2626;--cc-color-info:#64748b;--cc-color-bg-page:#f3f4f8;--cc-color-bg-surface:#fff;--cc-color-bg-muted:#f8fafc;--cc-color-border:#cbd5e1;--cc-color-border-strong:#94a3b8;--cc-color-text:#1e293b;--cc-color-text-strong:#0f172a;--cc-color-text-secondary:#334155;--cc-color-text-muted:#64748b;--cc-radius-control:8px;--cc-radius-card:10px;--cc-height-control:32px;--cc-shadow-control:0 1px 2px #0f172a0a;--cc-shadow-focus:0 0 0 3px #5b4cdb24, 0 1px 2px #0f172a0f;--cc-shadow-raised:0 12px 28px #0f172a2e}:root[data-theme=steel-blue]{--cc-primary:#2563eb;--cc-primary-hover:#1d4ed8;--cc-primary-active:#1e40af;--cc-primary-soft:#dbeafe;--cc-accent:#2563eb;--cc-sidebar-from:#0f172a;--cc-sidebar-to:#1e3a5f;--cc-sidebar-text:#cbd5e1;--cc-sidebar-text-active:#f8fafc;--cc-sidebar-hover:#60a5fa29;--cc-sidebar-active:#60a5fa38;--cc-sidebar-accent:#60a5fa;--cc-login-from:#0f172a;--cc-login-mid:#1e293b;--cc-login-to:#1e3a5f;--cc-login-glow:#60a5fa24;--cc-login-grid:#60a5fa0d;--cc-login-card-border:#60a5fa38;--cc-login-card-head:#2563eb1a;--cc-login-eyebrow:#93c5fd;--cc-shadow-focus:0 0 0 3px #2563eb24, 0 1px 2px #0f172a0f}:root[data-theme=amber-bronze]{--cc-primary:#b45309;--cc-primary-hover:#d97706;--cc-primary-active:#92400e;--cc-primary-soft:#fef3c7;--cc-accent:#f59e0b;--cc-sidebar-from:#1c1917;--cc-sidebar-to:#292524;--cc-sidebar-text:#d6d3d1;--cc-sidebar-text-active:#fafaf9;--cc-sidebar-hover:#f59e0b24;--cc-sidebar-active:#f59e0b38;--cc-sidebar-accent:#fbbf24;--cc-login-from:#1c1917;--cc-login-mid:#292524;--cc-login-to:#44403c;--cc-login-glow:#f59e0b1f;--cc-login-grid:#fbbf240d;--cc-login-card-border:#fbbf2433;--cc-login-card-head:#b453091f;--cc-login-eyebrow:#fcd34d;--cc-shadow-focus:0 0 0 3px #b4530924, 0 1px 2px #0f172a0f}:root[data-theme=deep-navy]{--cc-primary:#1d4ed8;--cc-primary-hover:#1e40af;--cc-primary-active:#1e3a8a;--cc-primary-soft:#e0e7ff;--cc-accent:#38bdf8;--cc-sidebar-from:#020617;--cc-sidebar-to:#0f172a;--cc-sidebar-text:#94a3b8;--cc-sidebar-text-active:#f8fafc;--cc-sidebar-hover:#38bdf824;--cc-sidebar-active:#38bdf833;--cc-sidebar-accent:#38bdf8;--cc-login-from:#020617;--cc-login-mid:#0f172a;--cc-login-to:#172554;--cc-login-glow:#38bdf81f;--cc-login-grid:#38bdf80d;--cc-login-card-border:#38bdf833;--cc-login-card-head:#1d4ed81a;--cc-login-eyebrow:#7dd3fc;--cc-shadow-focus:0 0 0 3px #1d4ed824, 0 1px 2px #0f172a0f}:root{--el-color-primary:var(--cc-primary);--el-color-success:var(--cc-color-success);--el-color-warning:var(--cc-color-warning);--el-color-danger:var(--cc-color-danger);--el-color-info:var(--cc-color-info);--el-bg-color-page:var(--cc-color-bg-page);--el-bg-color:var(--cc-color-bg-surface);--el-bg-color-overlay:var(--cc-color-bg-surface);--el-text-color-primary:var(--cc-color-text-strong);--el-text-color-regular:var(--cc-color-text-secondary);--el-text-color-secondary:var(--cc-color-text-muted);--el-border-color:var(--cc-color-border);--el-border-color-light:#e2e8f0;--el-border-radius-base:var(--cc-radius-control);--el-border-radius-small:6px;--el-component-size:var(--cc-height-control);--el-font-family:var(--cc-font-family);color:var(--cc-color-text);background:var(--cc-color-bg-page);font-family:var(--cc-font-family);font-size:15px}*{box-sizing:border-box}body{min-width:320px;margin:0}#app{min-height:100vh}button,input,textarea,select{font:inherit}button{cursor:pointer}.eyebrow{color:var(--cc-primary-hover);letter-spacing:.08em;font-size:12px;font-weight:800}.shell{background:var(--cc-color-bg-page);height:100dvh;max-height:100dvh;overflow:hidden}.shell>.main-shell{min-width:0;min-height:0}.shell.collapsed{--el-aside-width:84px}.sidebar{background:linear-gradient(180deg, var(--cc-sidebar-from) 0%, var(--cc-sidebar-to) 100%);min-height:0;color:var(--cc-sidebar-text-active);flex-direction:column;flex-shrink:0;padding:18px;transition:width .18s;display:flex;position:relative;overflow:hidden}.sidebar-menu{scrollbar-color:#94a3b859 transparent;scrollbar-width:thin;background:0 0;border-right:0;flex:1;min-height:0;overflow:hidden auto}.sidebar-menu:not(.el-menu--collapse){width:100%}.sidebar-menu.el-menu--collapse{width:48px}.sidebar-menu .el-menu-item,.sidebar-menu .el-sub-menu__title{border-radius:8px;height:40px;margin:0 0 4px;font-weight:700;line-height:40px}.sidebar-menu .el-menu-item:hover,.sidebar-menu .el-sub-menu__title:hover{color:var(--cc-sidebar-text-active);background:var(--cc-sidebar-hover)}.sidebar-menu .el-menu-item.is-active{color:var(--cc-sidebar-text-active);background:var(--cc-sidebar-active);box-shadow:inset 3px 0 0 var(--cc-sidebar-accent)}.sidebar-menu .el-sub-menu.is-active>.el-sub-menu__title{color:var(--cc-sidebar-text-active);background:var(--cc-sidebar-hover)}.sidebar-menu .el-sub-menu .el-menu-item{min-width:0;color:var(--cc-sidebar-text);font-size:14px;font-weight:600}.sidebar-menu .el-sub-menu .el-menu-item.is-active{color:var(--cc-sidebar-text-active)}.sidebar-menu .menu-icon{flex-shrink:0;margin-right:10px}.sidebar-head{flex-shrink:0;margin-bottom:24px;position:relative}.sidebar-collapse{color:#c7d2fe;position:absolute;top:2px;right:0}.sidebar-collapse:hover,.logout-btn:hover{color:#fff;background:#c7d2fe24}.brand{flex-shrink:0;align-items:center;gap:12px;min-height:40px;padding-right:36px;display:flex}.brand-mark{border-radius:8px;flex-shrink:0;place-items:center;width:40px;height:40px;display:grid;overflow:hidden}.brand-mark img{object-fit:cover;width:100%;height:100%}.brand-text strong{min-width:126px;font-size:14px;line-height:1.25;display:block}.shell.collapsed .sidebar-head{border-bottom:1px solid #c7d2fe29;flex-direction:column;align-items:center;margin-bottom:16px;padding-bottom:14px;display:flex}.shell.collapsed .brand-text{display:none}.shell.collapsed .brand{justify-content:center;width:40px;padding-right:0}.main{background:0 0;flex-direction:column;flex:1;min-height:0;padding:0 24px;display:flex;overflow:hidden}.main-scroll{flex:1;min-height:0;padding-bottom:24px;overflow:hidden auto}.main-scroll:has(>.audit-log-page){padding-bottom:0;overflow-y:hidden}.topbar{background:0 0;flex-shrink:0;justify-content:space-between;align-items:center;min-height:76px;padding:24px 24px 16px;display:flex}.topbar h1{letter-spacing:0;color:var(--cc-color-text-strong);margin:4px 0 0;font-size:22px}.user-chip{background:#fff;border:1px solid #e2e8f0;border-radius:8px;align-items:center;gap:10px;padding:8px 10px;display:flex}.logout-btn{color:#334155}.login-page{background:linear-gradient(135deg, var(--cc-login-from) 0%, var(--cc-login-mid) 48%, var(--cc-login-to) 100%);color:#f8fafc;min-height:100vh;position:relative;overflow:hidden}.login-stage{pointer-events:none;position:fixed;inset:0}.login-grid{background:linear-gradient(var(--cc-login-grid) 1px, transparent 1px), linear-gradient(90deg, var(--cc-login-grid) 1px, transparent 1px);background-size:48px 48px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(circle at 30% 40%,#000 15%,#0000 75%);mask-image:radial-gradient(circle at 30% 40%,#000 15%,#0000 75%)}.login-glow{filter:blur(90px);border-radius:50%;position:absolute}.login-glow--indigo{background:var(--cc-login-glow);width:420px;height:420px;top:12%;left:10%}.login-glow--slate{background:#33415559;width:480px;height:480px;bottom:10%;right:8%}.login-hero{z-index:2;max-width:520px;position:absolute;top:clamp(28px,4vw,56px);left:clamp(28px,4vw,64px)}.login-brand{align-items:center;gap:14px;margin-bottom:18px;display:flex}.login-brand img{border-radius:12px;box-shadow:0 12px 32px #02061773}.login-hero h1{letter-spacing:-.02em;margin:0;font-size:clamp(30px,3.8vw,48px);line-height:1.12}.login-card{z-index:2;border:1px solid var(--cc-login-card-border);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#0f172aeb;border-radius:16px;flex-direction:column;width:min(420px,100vw - 48px);display:flex;position:absolute;top:50%;right:clamp(32px,4.5vw,80px);overflow:hidden;transform:translateY(-50%);box-shadow:0 32px 80px #0206178c}.login-card-head{background:var(--cc-login-card-head);border-bottom:1px solid #94a3b81f;padding:28px 28px 22px}.login-card-eyebrow{color:var(--cc-login-eyebrow);letter-spacing:.16em;font-size:11px;font-weight:700}.login-card-head h2{margin:8px 0 0;font-size:24px}.login-card-desc{color:#94a3b8e6;margin:8px 0 0;font-size:13px;line-height:1.5}.login-fields{flex-direction:column;gap:18px;padding:24px 28px 8px;display:flex}.login-card label{color:#f1f5f9;gap:10px;font-size:13px;font-weight:600;display:grid}.login-card input{color:#f8fafc;background:#0206176b;border:1px solid #94a3b838;border-radius:10px;min-height:46px;padding:12px 14px}.login-card input:focus{border-color:color-mix(in srgb, var(--cc-primary) 45%, transparent);box-shadow:var(--cc-shadow-focus);outline:none}.login-card .error{color:#fecaca;background:#7f1d1d47;border:1px solid #f8717147;border-radius:10px;margin:0 28px 4px;padding:10px 12px;font-size:13px}.login-submit{border:1px solid var(--cc-primary);color:#fff;background:var(--cc-primary);width:calc(100% - 56px);min-height:48px;box-shadow:0 10px 24px color-mix(in srgb, var(--cc-primary) 28%, transparent);border-radius:10px;margin:16px 28px 28px;font-size:15px;font-weight:700}.login-submit:hover:not(:disabled){background:var(--cc-primary-hover);border-color:var(--cc-primary-hover)}.login-submit:disabled{opacity:.72;cursor:not-allowed}.captcha-row{grid-template-columns:minmax(0,1fr) 118px;gap:12px;display:grid}.captcha{background:#0206176b;border:1px solid #94a3b838;border-radius:10px;padding:0;overflow:hidden}.captcha img{object-fit:cover;width:100%;min-height:46px;display:block}.drawer-actions{border-top:1px solid var(--el-border-color-lighter);justify-content:flex-end;align-items:center;gap:8px;margin-top:16px;padding-top:16px;display:flex}.management-split{grid-template-columns:minmax(360px,1fr) minmax(480px,1fr);align-items:stretch;gap:16px;height:100%;min-height:0;display:grid;overflow:hidden}@media (width<=960px){.login-hero{padding:40px 24px 0;position:relative}.login-card{margin:24px auto 40px;position:relative;top:auto;right:auto;transform:none}.shell{flex-direction:column;height:auto;min-height:100dvh;max-height:none}.sidebar{width:100%!important}.management-split{grid-template-columns:1fr}}.el-form-item__label{color:var(--el-text-color-regular);align-items:center;gap:4px;font-weight:500;display:inline-flex}.ep-form .el-input,.ep-form .el-select,.ep-form .el-date-editor,.ep-form .el-textarea{width:100%}.ep-filter-form{flex-wrap:wrap;flex:1;align-items:flex-end;gap:0 12px;min-width:0;display:flex}.ep-filter-form .filter-control{width:168px}.ep-filter-form .filter-control--search{width:220px}.ep-filter-form .filter-control--date{width:300px}.students-list-card{border:1px solid var(--el-border-color-light)}.ep-page-toolbar{justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:16px;display:flex}.ep-page-toolbar__actions{flex-shrink:0;align-items:center;gap:8px;padding-bottom:12px;display:flex}.ep-page-toolbar--actions-only{justify-content:flex-end}.ep-page-toolbar--actions-only .ep-page-toolbar__actions{padding-bottom:0}.students-table{width:100%}.software-form-drawer .device-form-section{border-bottom:1px solid var(--el-border-color-lighter);margin-bottom:18px;padding-bottom:18px}.software-form-drawer .device-form-section--last{border-bottom:0;margin-bottom:0;padding-bottom:0}.software-form-drawer .device-form-section__title{color:var(--el-text-color-primary);margin:0 0 14px;font-size:14px;font-weight:700}.software-status-panel{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;justify-content:space-between;align-items:center;gap:16px;padding:12px 14px;display:flex}.software-status-panel__text strong{color:#0f172a;font-size:14px;font-weight:700;display:block}.software-status-panel__text small{color:#64748b;margin-top:2px;font-size:12px;display:block}.sw-manage-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;display:grid}.sw-card{border:1px solid var(--el-border-color-light);background:#fff;border-radius:14px;flex-direction:column;min-height:0;padding:0;transition:border-color .18s,box-shadow .18s;display:flex;overflow:hidden}.sw-card:hover{border-color:#a5b4fc;box-shadow:0 10px 28px #0f172a12}.sw-card__primary{padding:22px 22px 18px}.sw-card__header{align-items:flex-start;gap:18px;display:flex}.sw-card__logo{flex-shrink:0;place-items:center;width:96px;height:96px;display:grid;overflow:hidden}.sw-card__logo img{object-fit:contain;width:100%;height:100%}.sw-card__logo--fallback{color:#64748b;border:1px dashed #dbe3ef;border-radius:12px;font-size:34px;font-weight:800}.sw-card__head-main{flex:1;gap:8px;min-width:0;display:grid}.sw-card__title-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.sw-card__title-row h3{color:#0f172a;margin:0;font-size:19px;font-weight:800}.sw-card__code{color:#94a3b8;margin:0;font-size:12px}.sw-card__code-extra{color:#64748b;margin-left:16px}.sw-card__desc{color:#64748b;margin:0;font-size:13px;line-height:1.65}.sw-card__release{border-left:3px solid var(--cc-primary);background:#f8fafc;border-radius:0 8px 8px 0;margin:10px 22px;padding:10px 12px 10px 14px}.sw-card__release--empty{border-left-color:#cbd5e1}.sw-card__release-tag{color:#94a3b8;margin-bottom:4px;font-size:11px;font-weight:700;display:block}.sw-card__status{border-top:1px dashed #eef2f7;flex-wrap:wrap;gap:8px 14px;margin:14px 22px 0;padding-top:12px;display:flex}.sw-card__status-item{align-items:center;gap:5px;font-size:12px;display:inline-flex}.sw-card__status-item:before{content:"";border-radius:50%;width:6px;height:6px}.sw-card__status-item.is-ok:before{background:#22c55e}.sw-card__status-item.is-muted:before{background:#cbd5e1}.sw-card__footer{background:#f9fafb;border-top:1px solid #eef2f7;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:16px;padding:14px 22px;display:flex}.sw-card__footer-left,.sw-card__footer-right{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.sw-card__footer-right{margin-left:auto}.pagination-bar{border-top:1px solid var(--el-border-color-lighter);justify-content:flex-end;align-items:center;width:100%;margin-top:16px;padding-top:12px;display:flex}.form-api-error{margin:0 0 12px}.audit-log-page{flex-direction:column;height:calc(100vh - 196px);min-height:0;display:flex;overflow:hidden}.audit-log-card,.audit-log-card .el-card__body{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.audit-log-table-wrap{flex:1;min-height:0;overflow:auto}.roles-workbench{flex-direction:column;flex:1;gap:12px;min-height:0;display:flex}.roles-workbench .management-split{grid-template-columns:minmax(320px,.95fr) minmax(380px,1.05fr);gap:14px;min-height:0;display:grid}.roles-workbench .management-split--roles{grid-template-columns:minmax(200px,1fr) minmax(480px,3fr);height:min(100vh - 210px,860px);max-height:min(100vh - 210px,860px);overflow:hidden}.segment-tab.active{border-color:var(--cc-primary)!important;color:var(--cc-primary-hover)!important}.hf-toast-success.el-message{background:linear-gradient(#eef2ff 0%,#fff 100%);border:1px solid #a5b4fc;border-radius:10px;min-width:220px;padding:14px 22px;box-shadow:0 14px 32px #4f46e52e}.hf-toast-success .el-message__content{color:var(--cc-primary-hover);font-weight:700}@media (width<=1100px){.sw-manage-grid{grid-template-columns:1fr}.roles-workbench .management-split,.roles-workbench .management-split--roles{grid-template-columns:1fr;height:auto;max-height:none}}@media (width<=720px){.ep-page-toolbar{flex-direction:column;align-items:stretch}.ep-filter-form .filter-control,.ep-filter-form .filter-control--search,.ep-filter-form .filter-control--date{width:100%}}
