:root{--primary:#1b59d6;--primary-hover:#2a66de;--primary-active:#1548b4;--primary-light:#e7effb;--primary-soft:#f2f6fe;--page-bg:#f5f5fa;--card-bg:#fff;--text-1:#1a1f36;--text-2:#5b6070;--text-3:#9498a3;--text-4:#b6b9c1;--line:#eef0f4;--line-strong:#e4e7ee;--head-bg:#f6f7fa;--fill-soft:#f6f7fa;--success-bg:#dfede4;--success-fg:#2e6e4e;--warn-bg:#fff4df;--warn-fg:#a86a00;--danger-bg:#fbe9e9;--danger-fg:#bf383d;--info-bg:#e7effb;--info-fg:#1b59d6;--neutral-bg:#f0f1f5;--neutral-fg:#6b7080;--radius-lg:16px;--radius:12px;--radius-sm:8px;--radius-xs:6px;--shadow-card:0 2px 10px rgba(26,31,54,.05);--shadow-pop:0 12px 40px rgba(26,31,54,.14);--sidebar-w:232px;--topbar-h:60px}*{box-sizing:border-box}#app,body,html{height:100%}body{margin:0;background:var(--page-bg);color:var(--text-1);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Helvetica Neue,Arial,sans-serif;font-size:14px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:var(--primary);text-decoration:none}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:#d8dbe4;border-radius:8px}::-webkit-scrollbar-thumb:hover{background:#c2c6d2}::-webkit-scrollbar-track{background:transparent}.ws-page{padding:24px 28px 40px;min-height:100%}.ws-card{background:var(--card-bg);border-radius:var(--radius);box-shadow:var(--shadow-card)}.ws-h1{margin:0;font-size:28px;line-height:1.25;font-weight:700;letter-spacing:-.2px;color:var(--text-1)}.ws-sub{margin-top:8px;font-size:13px;color:var(--text-3);line-height:1.5}.ws-section-title{font-size:16px;font-weight:600;color:var(--text-1)}.ws-label{font-size:12px;color:var(--text-3);line-height:1.5}.ws-value{margin-top:6px;font-size:14px;color:var(--text-1);line-height:1.5}.ws-value.is-empty{color:var(--text-2)}.ws-link{color:var(--primary);cursor:pointer;font-size:13px}.ws-link:hover{opacity:.8}.ws-mono{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}.text-muted{color:var(--text-3)}.ws-pill{display:inline-flex;align-items:center;gap:5px;height:22px;padding:0 8px;border-radius:5px;font-size:12px;font-weight:500;line-height:1;white-space:nowrap}.ws-pill .dot{width:4px;height:4px;border-radius:50%;background:currentColor;flex:none}.ws-pill--success{background:var(--success-bg);color:var(--success-fg)}.ws-pill--warn{background:var(--warn-bg);color:var(--warn-fg)}.ws-pill--danger{background:var(--danger-bg);color:var(--danger-fg)}.ws-pill--info{background:var(--info-bg);color:var(--info-fg)}.ws-pill--neutral{background:var(--neutral-bg);color:var(--neutral-fg)}.ws-grid2{display:grid;grid-template-columns:1fr 1fr;-moz-column-gap:24px;column-gap:24px;row-gap:20px}.ws-op{color:var(--primary);font-size:13px;cursor:pointer;white-space:nowrap}.ws-op+.ws-op{margin-left:14px}.ws-op:hover{opacity:.8}.ws-op.is-plain{color:var(--text-2)}.ws-empty-text{color:var(--text-3);font-size:13px}.panel-shell{display:flex;flex-direction:column;height:100%;background:#fff}.panel-head{flex:none;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:19px 24px 17px}.panel-head.is-divided{border-bottom:1px solid var(--line)}.panel-head h2{margin:0;font-size:19px;font-weight:700;letter-spacing:-.2px;color:var(--text-1)}.panel-close{flex:none;width:28px;height:28px;border:none;border-radius:50%;background:transparent;color:var(--text-3);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background-color .15s,color .15s}.panel-close:hover{background:var(--fill-soft);color:var(--text-1)}.panel-body{flex:1;overflow-y:auto;padding:0 24px 28px}.panel-foot{flex:none;display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:14px 24px;border-top:1px solid var(--line);background:#fff}.panel-foot .foot-note{margin-right:auto;font-size:12px;color:var(--text-3)}.form-section{margin-top:22px}.form-section:first-child{margin-top:4px}.form-section-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 14px;font-size:15px;font-weight:600;color:var(--text-1)}.form-section-title .extra{font-size:12px;font-weight:400;color:var(--text-3)}.form-hint{margin:-4px 0 12px;color:var(--text-3)}.form-banner,.form-hint{font-size:12px;line-height:1.6}.form-banner{margin:4px 0 16px;padding:10px 12px;border-radius:var(--radius-sm);background:var(--primary-soft);color:var(--primary)}.form-divider{height:1px;background:var(--line);margin:22px 0 4px}.el-button{font-family:inherit;height:36px;padding:0 16px;border-radius:var(--radius-sm);border-color:var(--line-strong);color:var(--text-2);font-size:14px;font-weight:500;transition:background-color .15s,border-color .15s,color .15s}.el-button:focus,.el-button:hover{color:var(--primary);border-color:#c7d5f3;background:var(--primary-soft)}.el-button--primary{background:var(--primary);border-color:var(--primary);color:#fff}.el-button--primary:focus,.el-button--primary:hover{background:var(--primary-hover);border-color:var(--primary-hover);color:#fff}.el-button--primary:active{background:var(--primary-active);border-color:var(--primary-active)}.el-button--text{color:var(--primary);padding:0;height:auto;border:none;background:transparent}.el-button--text:hover{background:transparent;color:var(--primary-hover)}.el-button--small{height:30px;padding:0 12px;font-size:13px}.el-button--mini{height:26px;padding:0 10px;font-size:12px}.el-button--large{height:44px;padding:0 20px;font-size:15px}.el-button+.el-button{margin-left:10px}.el-button.is-disabled,.el-button.is-disabled:hover{color:var(--text-4);background:var(--fill-soft);border-color:var(--line-strong)}.el-button [class*=el-icon-]+span{margin-left:6px}.el-button--primary.is-plain{background:var(--primary-soft);border-color:#c7d5f3;color:var(--primary)}.el-button--primary.is-plain:hover{background:var(--primary);border-color:var(--primary);color:#fff}.el-input__inner,.el-textarea__inner{font-family:inherit;color:var(--text-1);border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:#fff;font-size:14px;transition:border-color .15s,background-color .15s}.el-input__inner{height:38px;line-height:38px;padding:0 12px}.el-input__inner::-moz-placeholder,.el-textarea__inner::-moz-placeholder{color:var(--text-4)}.el-input__inner::placeholder,.el-textarea__inner::placeholder{color:var(--text-4)}.el-input__inner:hover,.el-textarea__inner:hover{border-color:#ccd5e8}.el-input__inner:focus,.el-textarea__inner:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(27,89,214,.08)}.el-textarea__inner{padding:10px 12px;line-height:1.6;resize:vertical}.el-input__icon{line-height:38px;color:var(--text-3)}.el-input--small .el-input__inner{height:32px;line-height:32px}.el-input--small .el-input__icon{line-height:32px}.el-input__prefix{left:12px;color:var(--text-3);display:flex;align-items:center;height:100%}.el-input--prefix .el-input__inner{padding-left:36px}.el-input__suffix{right:12px;display:flex;align-items:center;height:100%}.el-select .el-input.is-focus .el-input__inner{border-color:var(--primary)}.el-input.is-disabled .el-input__inner{background:var(--fill-soft);color:var(--text-3)}.search-input .el-input__inner{background:var(--fill-soft);border-color:transparent}.search-input .el-input__inner:hover{background:#f1f3f8;border-color:transparent}.search-input .el-input__inner:focus{background:#fff;border-color:var(--primary)}.el-dropdown-menu,.el-picker-panel,.el-select-dropdown{border-radius:10px;border-color:var(--line);box-shadow:var(--shadow-pop)}.el-select-dropdown__list{padding:6px}.el-select-dropdown__item{height:34px;line-height:34px;padding:0 10px;border-radius:var(--radius-xs);font-size:13px;color:var(--text-2)}.el-select-dropdown__item.hover,.el-select-dropdown__item:hover{background:#f5f7fc}.el-select-dropdown__item.selected{color:var(--primary);font-weight:600;background:var(--primary-soft)}.el-popper[x-placement^=bottom] .popper__arrow:after{border-bottom-color:#fff}.el-popper[x-placement^=top] .popper__arrow:after{border-top-color:#fff}.el-date-editor .el-input__inner{padding-left:34px}.el-date-table td.today span{color:var(--primary)}.el-date-table td.current:not(.disabled) span{background:var(--primary)}.el-date-picker__header-label.active,.el-date-picker__header-label:hover,.el-date-table td.available:hover,.el-date-table td.today:hover,.el-picker-panel__icon-btn:hover{color:var(--primary)}.el-checkbox__inner{width:16px;height:16px;border-radius:4px;border-color:#d7dae3}.el-checkbox__inner:after{left:5px;top:2px;width:3px;height:7px}.el-checkbox__input.is-checked .el-checkbox__inner,.el-checkbox__input.is-indeterminate .el-checkbox__inner{background:var(--primary);border-color:var(--primary)}.el-checkbox__input.is-focus .el-checkbox__inner{border-color:var(--primary)}.el-checkbox__label{color:var(--text-2);font-size:14px}.el-table{color:var(--text-1);font-size:14px;background:transparent}.el-table:before,.el-table__fixed-right:before,.el-table__fixed:before{display:none}.el-table th.el-table__cell{background:var(--head-bg);border-bottom:none;color:var(--text-3);font-weight:500;font-size:13px;padding:13px 0}.el-table td.el-table__cell{border-bottom:1px solid var(--line);padding:15px 0}.el-table td.el-table__cell>.cell,.el-table th.el-table__cell>.cell{padding:0 12px;line-height:1.5}.el-table td.el-table__cell:first-child>.cell,.el-table th.el-table__cell:first-child>.cell{padding-left:24px}.el-table td.el-table__cell:last-child>.cell,.el-table th.el-table__cell:last-child>.cell{padding-right:24px}.el-table--enable-row-hover .el-table__body tr:hover>td.el-table__cell{background:#fafbfe}.el-table__empty-block{min-height:180px}.el-table__empty-text{color:var(--text-3);font-size:13px}.el-table .cell{word-break:break-word}.el-pagination{padding:0;font-weight:400;color:var(--text-2)}.el-pagination.is-background .btn-next,.el-pagination.is-background .btn-prev,.el-pagination.is-background .el-pager li{background:#fff;border:1px solid var(--line-strong);border-radius:var(--radius-sm);min-width:32px;height:32px;line-height:30px;font-size:13px;color:var(--text-2);margin:0 4px;font-weight:500}.el-pagination.is-background .el-pager li:not(.disabled).active{background:var(--primary);border-color:var(--primary);color:#fff}.el-pagination.is-background .el-pager li:not(.disabled):hover{color:var(--primary)}.el-pagination.is-background .btn-next:disabled,.el-pagination.is-background .btn-prev:disabled{color:var(--text-4)}.el-dialog{border-radius:var(--radius-lg);box-shadow:0 24px 70px rgba(17,22,40,.2);overflow:hidden}.el-dialog__header{padding:0}.el-dialog__headerbtn{top:20px;right:20px;width:32px;height:32px;border-radius:50%;transition:background-color .15s;z-index:3}.el-dialog__headerbtn:hover{background:var(--fill-soft)}.el-dialog__close{color:var(--text-3);font-size:16px}.el-dialog__body,.el-dialog__headerbtn:hover .el-dialog__close{color:var(--text-1)}.el-dialog__body{padding:0;font-size:14px}.v-modal{background:#101426;opacity:.42}.el-drawer{box-shadow:-10px 0 50px rgba(17,22,40,.12)}.el-drawer__body{padding:0;overflow:hidden;display:flex;flex-direction:column;height:100%}.el-drawer__header{margin:0}.el-form-item{margin-bottom:20px}.el-form-item__label{color:var(--text-2);padding-bottom:8px}.el-form-item--small .el-form-item__label,.el-form-item__label{font-size:13px;line-height:1.4}.el-form-item__error{padding-top:5px;font-size:12px;color:var(--danger-fg)}.el-form-item.is-error .el-input__inner,.el-form-item.is-error .el-textarea__inner{border-color:var(--danger-fg)}.el-message{border-radius:10px;box-shadow:0 8px 28px rgba(17,22,40,.12);border-color:var(--line);padding:11px 16px;min-width:220px}.el-message-box{border-radius:var(--radius);padding-bottom:20px;border:none;box-shadow:var(--shadow-pop)}.el-message-box__header{padding:20px 20px 8px}.el-message-box__title{font-size:16px;font-weight:600;color:var(--text-1)}.el-message-box__content{padding:8px 20px;color:var(--text-2)}.el-message-box__btns{padding:8px 20px 0}.el-tooltip__popper.is-dark{background:#2a3042;font-size:12px;border-radius:6px;padding:6px 10px}.el-progress-bar__outer{background:#edeff5}.el-date-editor.el-input,.el-date-editor.el-input__inner{width:100%}.drawer-body .el-form-item,.el-dialog .el-form-item{margin-bottom:18px}.ws-icon[data-v-fa0f9a9e]{display:block;flex:none}.app-layout[data-v-37ed158c]{min-height:100vh;background:var(--page-bg)}.sidebar[data-v-37ed158c]{position:fixed;top:0;left:0;bottom:0;width:var(--sidebar-w);background:#fff;border-right:1px solid #f0f1f6;padding-bottom:16px;z-index:20;display:flex;flex-direction:column}.brand[data-v-37ed158c]{display:flex;align-items:center;gap:11px;padding:19px 18px 17px}.brand-mark[data-v-37ed158c]{width:36px;height:36px;border-radius:10px;background:var(--primary);display:flex;align-items:center;justify-content:center;flex:none}.brand-text[data-v-37ed158c]{display:flex;flex-direction:column;gap:3px}.brand-name[data-v-37ed158c]{font-size:19px;font-weight:700;letter-spacing:1px;color:var(--text-1);line-height:1}.brand-en[data-v-37ed158c]{font-size:9px;letter-spacing:2.2px;color:var(--text-4);line-height:1}.nav-group-label[data-v-37ed158c]{padding:8px 20px 10px;font-size:11.5px;color:var(--text-4);letter-spacing:.4px}.nav[data-v-37ed158c]{display:flex;flex-direction:column;gap:2px;padding:0 10px}.nav-item[data-v-37ed158c]{display:flex;align-items:center;gap:10px;height:40px;padding:0 10px;border-radius:var(--radius-sm);color:var(--text-2);font-size:14px;transition:background-color .15s,color .15s}.nav-item[data-v-37ed158c]:hover{background:#f7f8fc;color:var(--text-1)}.nav-item.is-active[data-v-37ed158c]{background:var(--primary-light);color:var(--primary);font-weight:600}.nav-label[data-v-37ed158c]{flex:1;white-space:nowrap}.nav-badge[data-v-37ed158c]{min-width:20px;height:20px;padding:0 5px;border-radius:10px;background:var(--primary-light);color:var(--primary);font-size:11.5px;font-weight:600;display:inline-flex;align-items:center;justify-content:center}.nav-item.is-active .nav-badge[data-v-37ed158c]{background:#fff}.main[data-v-37ed158c]{margin-left:var(--sidebar-w);min-height:100vh;display:flex;flex-direction:column}.topbar[data-v-37ed158c]{position:sticky;top:0;height:var(--topbar-h);background:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 28px;border-bottom:1px solid #f0f1f6;z-index:15}.crumb[data-v-37ed158c]{display:flex;align-items:center;gap:8px;font-size:13px}.crumb-group[data-v-37ed158c]{color:var(--text-3)}.crumb-sep[data-v-37ed158c]{color:var(--text-4)}.crumb-current[data-v-37ed158c]{color:var(--text-1);font-weight:500}.topbar-right[data-v-37ed158c]{display:flex;align-items:center;gap:14px}.project-switch[data-v-37ed158c]{width:176px}.project-switch[data-v-37ed158c] .el-input__inner{border-color:var(--line-strong);color:var(--text-1)}.project-chip[data-v-37ed158c]{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text-1)}.project-chip .ws-icon[data-v-37ed158c]{color:var(--text-3)}.tb-divider[data-v-37ed158c]{width:1px;height:18px;background:var(--line-strong)}.user-chip[data-v-37ed158c]{display:flex;align-items:center;cursor:pointer}.user-avatar[data-v-37ed158c]{width:28px;height:28px;border-radius:50%;background:#eef0f5;color:var(--text-3);display:flex;align-items:center;justify-content:center}.user-chip:hover .user-avatar[data-v-37ed158c]{background:#e6e9f1}.content[data-v-37ed158c]{flex:1;min-width:0}@media (max-width:900px){.topbar[data-v-37ed158c]{padding:0 18px}.topbar-right[data-v-37ed158c]{gap:10px}.project-switch[data-v-37ed158c]{width:150px}.project-chip span[data-v-37ed158c]{display:none}}