: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}@keyframes rotating{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.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}:root{--primary: #1769e8;--primary-hover: #0d57c9;--primary-soft: #eaf2ff;--ink: #172033;--muted: #6d788a;--line: #e3e8ef;--page: #f6f8fb;--surface: #ffffff;--success: #24b47e;--warning: #f5a623;--danger: #f15b55;--sidebar-width: 176px;--radius: 12px;--shadow: 0 8px 28px rgba(24, 43, 78, .055);--transition: .18s ease}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#app{min-width:320px;height:100%}body{background:var(--page);color:var(--ink);font-family:Inter,PingFang SC,Microsoft YaHei,Helvetica Neue,Arial,sans-serif;font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}button,input,select,textarea{font:inherit}button{color:inherit}a{color:inherit;text-decoration:none}.admin-shell{min-height:100vh;background:var(--page)}.admin-sidebar{position:fixed;inset:0 auto 0 0;z-index:30;display:flex;width:var(--sidebar-width);flex-direction:column;overflow:hidden;border-right:1px solid #e5ebf2;background:#fafcfffa;box-shadow:8px 0 24px #223b6009}.brand{display:flex;width:100%;min-height:112px;align-items:center;justify-content:center;gap:11px;border:0;background:transparent;cursor:pointer}.brand-mark{display:grid;width:42px;height:42px;place-items:center;border-radius:50%;overflow:hidden;background:#fff;box-shadow:0 2px 10px #1c4d911a}.brand-mark img{display:block;width:100%;height:100%;object-fit:cover}.brand-copy{display:flex;flex-direction:column;text-align:left}.brand-copy strong{color:#111927;font-size:16px;font-weight:750;letter-spacing:.02em}.brand-copy small{color:#7e8a9b;font-size:10px;font-weight:700;letter-spacing:.16em}.primary-nav.el-menu{flex:1;overflow-x:hidden;overflow-y:auto;border-right:0;background:transparent;padding:6px 12px 16px}.primary-nav .el-menu-item,.primary-nav .el-sub-menu__title{height:48px;margin:2px 0;border-radius:8px;color:#465266;font-size:13px;font-weight:600;line-height:48px;transition:color var(--transition),background var(--transition)}.primary-nav .el-sub-menu__title{padding-right:18px!important}.primary-nav .el-sub-menu__title .nav-title{display:block;max-width:60px;flex:0 1 60px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.primary-nav .el-sub-menu__icon-arrow{right:-6px!important;margin-top:-6px}.primary-nav .el-menu-item .el-icon,.primary-nav .el-sub-menu__title .el-icon{margin-right:12px;color:#5d687a;font-size:18px}.primary-nav .el-menu-item:hover,.primary-nav .el-sub-menu__title:hover{background:#f0f5fc;color:var(--primary)}.primary-nav .el-menu-item.is-active{background:#e8f1ff;color:#1262d7}.primary-nav .el-menu-item.is-active .el-icon{color:#1262d7}.primary-nav .el-sub-menu .el-menu{background:transparent}.primary-nav .el-sub-menu .el-menu-item{min-width:auto;height:40px;padding-left:43px!important;font-size:12px;line-height:40px}.sidebar-footer{padding:14px 12px 20px;border-top:1px solid #edf1f5}.sidebar-footer .el-dropdown{width:100%}.profile-button{display:grid;width:100%;grid-template-columns:38px minmax(0,1fr) 16px;align-items:center;gap:9px;border:0;background:transparent;cursor:pointer;text-align:left}.profile-copy{display:flex;min-width:0;flex-direction:column}.profile-copy strong{overflow:hidden;font-size:13px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.profile-copy small{color:#8b95a5;font-size:11px}.profile-chevron{color:#8b95a5;font-size:12px}.admin-main{display:flex;min-height:100vh;margin-left:var(--sidebar-width);padding:30px 38px 36px;flex-direction:column}.admin-content{flex:1}.mobile-nav-trigger,.mobile-nav-backdrop{display:none}.el-card{border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.el-card__header{padding:16px 20px!important;border-bottom:1px solid var(--line);font-size:15px;font-weight:650}.el-button{border-radius:7px;font-weight:600;transition:all var(--transition)}.el-button--primary{border-color:var(--primary);background:var(--primary)}.el-button--primary:hover{border-color:var(--primary-hover);background:var(--primary-hover)}.el-tag{border-radius:6px;font-weight:600}.el-dialog{max-width:calc(100vw - 32px);border-radius:14px}.el-form-item__label{font-weight:650}.el-input__wrapper,.el-select__wrapper{border-radius:7px}.el-table th.el-table__cell{background:#fafbfd;color:#687386;font-size:12px;font-weight:600}.el-table__body tr:hover>td{background:#f7faff!important}.progress-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}.progress-tags>.el-tag{height:30px;cursor:pointer;border:1px solid var(--line);background:#f3f5f8;color:var(--muted);font-size:13px;font-weight:500;line-height:30px}.progress-tags>.el-tag:hover{border-color:var(--primary);color:var(--primary)}.progress-tags>.el-tag.el-tag--primary{border-color:var(--primary);background:var(--primary-soft);color:var(--primary)}.progress-tags>.el-tag.el-tag--dark{border-color:var(--primary);background:var(--primary);color:#fff}.page h2{margin-bottom:16px;color:var(--ink);font-size:18px}.mb-18{margin-bottom:18px}.operations-dashboard{max-width:1480px;margin:0 auto}.dashboard-header{display:flex;align-items:center;justify-content:space-between;gap:28px;margin-bottom:24px}.dashboard-eyebrow{margin-bottom:4px;color:var(--primary);font-size:11px;font-weight:750;letter-spacing:.08em;text-transform:uppercase}.dashboard-header h1{color:#121a28;font-size:clamp(24px,2.1vw,32px);font-weight:760;letter-spacing:-.035em;line-height:1.25}.dashboard-date{margin-top:5px;color:#778295;font-size:12px}.dashboard-actions{display:flex;align-items:center;gap:12px}.dashboard-actions .el-date-editor{width:142px}.sync-status{display:flex;align-items:center;gap:7px;color:#7c8798;font-size:11px;white-space:nowrap}.sync-dot{width:7px;height:7px;border-radius:50%;background:var(--success);box-shadow:0 0 0 4px #24b47e1a}.sync-status.has-error{color:var(--danger)}.sync-status.has-error .sync-dot{background:var(--danger);box-shadow:0 0 0 4px #f15b551a}.primary-action{height:42px;padding:0 20px;box-shadow:0 8px 18px #1769e82e}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:18px}.metric-card{display:flex;min-width:0;align-items:center;gap:15px;min-height:110px;padding:20px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow)}.metric-icon{display:grid;width:48px;height:48px;flex:0 0 48px;place-items:center;border-radius:14px;font-size:23px}.metric-icon.blue{background:#eaf2ff;color:#2977eb}.metric-icon.indigo{background:#eef0ff;color:#6270ed}.metric-icon.coral{background:#fff0ee;color:#ff685c}.metric-copy{display:flex;min-width:0;flex-direction:column}.metric-copy>span{color:#788396;font-size:12px}.metric-copy strong{overflow:hidden;margin-top:2px;color:#101827;font-size:clamp(20px,1.8vw,27px);font-weight:750;letter-spacing:-.03em;line-height:1.28;text-overflow:ellipsis;white-space:nowrap}.metric-copy small{overflow:hidden;margin-top:4px;color:#8791a2;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.metric-copy small b{margin-left:5px;color:#ef655d;font-weight:650}.metric-copy small b.negative{color:var(--success)}.dashboard-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:18px}.schedule-panel{grid-column:span 5}.progress-panel{grid-column:span 7}.dashboard-grid.without-schedule .progress-panel,.dashboard-grid.without-team .reminder-panel{grid-column:1 / -1}.panel{min-width:0;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow)}.panel-heading{display:flex;min-height:68px;align-items:center;justify-content:space-between;gap:14px;padding:16px 18px;border-bottom:1px solid #edf0f4}.panel-heading.compact{min-height:58px}.panel-heading h2{color:#161f2e;font-size:16px;font-weight:720}.panel-kicker{margin-bottom:2px;color:#8490a2;font-size:10px;font-weight:650;letter-spacing:.08em}.period-label{color:#7e899b;font-size:11px}.schedule-list{padding:0 18px}.schedule-row{display:grid;min-height:92px;grid-template-columns:58px 94px minmax(0,1fr) auto;align-items:center;gap:12px;padding:13px 0;border-bottom:1px solid #edf0f4}.schedule-row:last-child{border-bottom:0}.schedule-time{display:flex;flex-direction:column}.schedule-time strong{color:#202938;font-size:14px}.schedule-time span{color:#8a95a5;font-size:10px}.schedule-row img{width:94px;height:58px;border-radius:8px;object-fit:cover}.schedule-info{display:flex;min-width:0;flex-direction:column}.schedule-info strong{overflow:hidden;color:#1c2636;font-size:13px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.schedule-info span,.schedule-info small{overflow:hidden;color:#6f7a8c;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.schedule-info small{color:#9aa3b1}.schedule-row .el-tag{min-width:48px;justify-content:center;font-size:10px}.exam-execution{padding:16px 18px 18px}.exam-status-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.exam-status-grid>div{display:flex;min-width:0;min-height:70px;justify-content:center;flex-direction:column;padding:11px 12px;border:1px solid #e7ebf1;border-radius:10px;background:#fafbfd}.exam-status-grid span{color:#7e899a;font-size:10px}.exam-status-grid strong{margin-top:3px;color:#1c2637;font-size:20px;font-weight:750}.exam-status-grid .is-success{border-color:#dcefe8;background:#f2fbf7}.exam-status-grid .is-success strong{color:#229b70}.exam-status-grid .has-risk{border-color:#f4d9d6;background:#fff5f4}.exam-status-grid .has-risk strong{color:var(--danger)}.execution-priority{display:grid;min-height:58px;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:10px;margin-top:12px;padding:9px 11px;border:1px solid #dcefe8;border-radius:10px;background:#f3fbf7}.execution-priority.danger{border-color:#f2d5d2;background:#fff6f5}.execution-priority-icon{display:grid;width:32px;height:32px;place-items:center;border-radius:9px;background:#e4f7ef;color:var(--success);font-size:16px}.execution-priority.danger .execution-priority-icon{background:#ffe8e6;color:var(--danger)}.execution-priority>span:nth-child(2){display:flex;min-width:0;flex-direction:column}.execution-priority strong{color:#354257;font-size:12px}.execution-priority small{margin-top:1px;color:#8994a5;font-size:10px}.execution-priority .el-button{min-height:34px;font-size:11px}.execution-progress{padding:15px 2px 13px;border-bottom:1px solid #edf0f4}.execution-progress>div:first-child{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.execution-progress span,.execution-progress small{color:#7f8a9b;font-size:10px}.execution-progress strong{color:#33415a;font-size:12px}.execution-progress small{display:block;margin-top:6px;text-align:right}.attention-block{padding-top:14px}.attention-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:5px}.attention-heading strong{color:#33415a;font-size:12px}.attention-heading span{color:#929cab;font-size:9px}.attention-block>button{display:flex;width:100%;min-height:48px;align-items:center;justify-content:space-between;gap:12px;border:0;border-bottom:1px solid #edf0f4;background:transparent;cursor:pointer;text-align:left}.attention-block>button:hover{background:#fafcff}.attention-copy{display:flex;min-width:0;flex-direction:column}.attention-copy strong,.attention-copy small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attention-copy strong{color:#3b4759;font-size:11px}.attention-copy small{margin-top:2px;color:#929cab;font-size:9px}.execution-detail-empty{display:grid;min-height:64px;place-items:center;color:#929cab;font-size:10px;text-align:center}.upcoming-exams{padding:15px 18px 18px}.upcoming-heading{display:flex;align-items:center;gap:11px;padding-bottom:10px;border-bottom:1px solid #edf0f4}.upcoming-heading .empty-icon{width:40px;height:40px;margin:0;border-radius:11px}.upcoming-heading div{display:flex;flex-direction:column}.upcoming-heading strong{color:#394659;font-size:12px}.upcoming-heading p{color:#929cab;font-size:10px}.upcoming-exams>button{display:grid;width:100%;min-height:56px;grid-template-columns:52px minmax(0,1fr) 16px;align-items:center;gap:10px;border:0;border-bottom:1px solid #edf0f4;background:transparent;cursor:pointer;text-align:left}.upcoming-exams>button time{color:var(--primary);font-size:10px;font-weight:700}.upcoming-exams>button>span{display:flex;min-width:0;flex-direction:column}.upcoming-exams>button strong,.upcoming-exams>button small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.upcoming-exams>button strong{color:#394659;font-size:11px}.upcoming-exams>button small{color:#929cab;font-size:9px}.upcoming-exams>button>.el-icon{color:#a4adba}.exam-panel-empty{min-height:340px}.panel-empty{display:flex;min-height:288px;align-items:center;justify-content:center;flex-direction:column;color:#798599;text-align:center}.empty-icon{display:grid;width:48px;height:48px;margin-bottom:12px;place-items:center;border-radius:14px;background:#edf4ff;color:var(--primary);font-size:22px}.panel-empty strong{color:#465266;font-size:13px}.panel-empty p{margin:3px 0 6px;font-size:11px}.progress-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));padding:17px 18px;border-bottom:1px solid #edf0f4}.progress-kpis>div{display:flex;min-width:0;flex-direction:column;padding:0 18px;border-right:1px solid #e9edf2}.progress-kpis>div:first-child{padding-left:0}.progress-kpis>div:last-child{padding-right:0;border-right:0}.progress-kpis span{color:#778295;font-size:11px}.progress-kpis strong{margin:3px 0;color:#121b29;font-size:21px;font-weight:750}.progress-kpis small{color:#8893a3;font-size:10px}.progress-kpis small.trend-positive{color:var(--success)}.progress-kpis small.trend-negative{color:var(--danger)}.progress-content{display:grid;grid-template-columns:minmax(210px,.78fr) minmax(280px,1.22fr);min-height:228px;padding:14px 18px 10px}.stage-chart-wrap{position:relative;min-height:196px}.stage-chart{height:196px}.stage-chart-total{position:absolute;top:50%;left:50%;display:flex;align-items:center;flex-direction:column;pointer-events:none;transform:translate(-50%,-50%)}.stage-chart-total strong{color:#172033;font-size:22px;font-weight:750}.stage-chart-total span{color:#8a95a4;font-size:10px}.stage-table{align-self:center}.stage-table-head,.stage-table-row{display:grid;grid-template-columns:minmax(0,1fr) 62px 56px;align-items:center;column-gap:10px}.stage-table-head{height:32px;border-bottom:1px solid #e8ecf1;color:#929cab;font-size:10px}.stage-table-row{min-height:27px;color:#4f5b6e;font-size:10px}.stage-table-row>span:first-child{display:flex;min-width:0;align-items:center;gap:7px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stage-table-row i{width:7px;height:7px;flex:0 0 7px;border-radius:50%}.stage-table-row strong{color:#384457;font-weight:650}.inline-empty{padding:30px 0;color:#9aa4b3;font-size:11px;text-align:center}.trend-block{padding:11px 18px 14px;border-top:1px solid #edf0f4}.trend-title{display:flex;align-items:center;justify-content:space-between;gap:12px}.trend-title strong{color:#273244;font-size:12px}.trend-title>span{display:flex;align-items:center;gap:5px;color:#8a95a5;font-size:9px}.legend-dot{width:6px;height:6px;margin-left:7px;border-radius:50%}.legend-dot.blue{background:#2f7df6}.legend-dot.green{background:#52c99a}.trend-chart{height:142px}.quick-panel{min-height:144px}.quick-grid{display:grid;grid-template-columns:repeat(6,1fr);min-height:86px;align-items:center;padding:10px 10px 12px}.quick-grid button{display:flex;align-items:center;gap:8px;border:0;background:transparent;color:#4d596c;cursor:pointer;flex-direction:column;font-size:10px;transition:color var(--transition),transform var(--transition)}.quick-grid button:hover{color:var(--primary);transform:translateY(-2px)}.quick-grid button>span{display:grid;width:38px;height:38px;place-items:center;border-radius:11px;font-size:18px}.quick-grid .blue{background:#eaf2ff;color:#2f7df6}.quick-grid .sky{background:#edf8ff;color:#2c9be8}.quick-grid .indigo{background:#eef0ff;color:#6672eb}.quick-grid .amber{background:#fff6e6;color:#f3a01e}.team-panel{grid-column:span 8;overflow:hidden}.team-performance-grid{display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr)}.team-performance-grid.single-column{grid-template-columns:1fr}.ranking-section{min-width:0;padding:14px 18px 16px}.ranking-section+.ranking-section{border-left:1px solid #edf0f4}.ranking-heading{display:flex;min-height:42px;align-items:flex-start;justify-content:space-between;gap:12px}.ranking-heading>div:first-child{display:flex;min-width:0;flex-direction:column}.ranking-heading strong{color:#33415a;font-size:12px}.ranking-heading small{margin-top:2px;color:#929cab;font-size:10px}.performance-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:2px 0 10px}.performance-summary>div{display:flex;min-width:0;min-height:52px;justify-content:center;flex-direction:column;padding:8px 11px;border:1px solid #e8edf3;border-radius:10px;background:#f8fafc}.performance-summary span{overflow:hidden;color:#8792a4;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.performance-summary strong{margin-top:2px;color:#26344a;font-size:18px;line-height:1}.performance-summary strong small{margin-left:3px;color:#8792a4;font-size:10px;font-weight:500}.admissions-summary>div:first-child{border-color:#dce9fb;background:#f5f9ff}.coach-summary>div.has-risk{border-color:#f3d8d4;background:#fff7f6}.coach-summary>div.has-risk strong,.coach-summary>div.has-risk strong small{color:var(--danger)}.ranking-list,.coach-attention-list{display:grid;gap:5px}.ranking-list>button{display:grid;min-height:42px;grid-template-columns:25px minmax(88px,.85fr) minmax(70px,1fr) 44px;align-items:center;gap:8px;border:0;border-radius:8px;background:transparent;cursor:pointer;text-align:left}.ranking-list>button:hover{background:#f7faff}.rank-index{display:grid;width:22px;height:22px;place-items:center;border-radius:7px;background:#f1f4f8;color:#7c8798;font-size:10px;font-weight:750}.rank-index.rank-1{background:#fff2d8;color:#c98100}.rank-index.rank-2{background:#eef2f7;color:#657389}.rank-index.rank-3{background:#fff0e8;color:#c96b37}.rank-copy{display:flex;min-width:0;flex-direction:column}.rank-copy strong,.rank-copy small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rank-copy strong{color:#354257;font-size:12px}.rank-copy small{color:#929cab;font-size:10px}.rank-meter{height:5px;overflow:hidden;border-radius:999px;background:#edf1f6}.rank-meter i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#72aaf8,#2977eb)}.rank-value{color:#1d2a3e;font-size:14px;text-align:right}.rank-value small{margin-left:2px;color:#8b96a7;font-size:9px;font-weight:500}.subject-switch{display:flex;flex:0 0 auto;padding:2px;border:1px solid #e0e6ee;border-radius:8px;background:#f5f7fa}.subject-switch button{min-width:42px;height:26px;padding:0 9px;border:0;border-radius:6px;background:transparent;color:#748094;cursor:pointer;font-size:10px;font-weight:650}.subject-switch button.active{background:#fff;color:var(--primary);box-shadow:0 2px 7px #1e365817}.coach-attention-list>button{display:grid;min-height:57px;grid-template-columns:40px minmax(0,1fr) 68px;align-items:center;gap:10px;padding:7px 10px;border:1px solid #e6ebf1;border-radius:9px;background:#fafbfd;cursor:pointer;text-align:left}.coach-attention-list>button.is-danger{border-color:#f3d4d1;background:#fff5f4}.coach-attention-list>button.is-warning{border-color:#f0e1bf;background:#fff9ed}.attention-rank{color:#8a95a5;font-size:10px;font-weight:700}.coach-rate{display:flex;align-items:flex-end;flex-direction:column}.coach-rate strong{color:#33415a;font-size:14px}.coach-rate small{color:#8792a3;font-size:9px}.is-danger .coach-rate strong,.is-danger .coach-rate small{color:var(--danger)}.is-warning .coach-rate strong,.is-warning .coach-rate small{color:#d38a14}.ranking-empty{display:flex;width:100%;min-height:124px;align-items:center;justify-content:center;flex-direction:column;gap:3px;padding:16px;border:1px dashed #e2e8f0;border-radius:10px;background:#fbfcfe;color:#9aa4b3;cursor:pointer;text-align:center}.ranking-empty strong{color:#748095;font-size:11px}.ranking-empty small{color:#a0a9b7;font-size:10px}.ranking-empty:hover{border-color:#cbdcf7;background:#f7faff}.reminder-panel{grid-column:span 4;min-height:144px}.reminder-heading-actions{display:flex;align-items:center;gap:8px}.reminder-heading-actions>span{color:#9aa4b3;font-size:11px}.reminder-list{padding:3px 16px 6px}.reminder-list button{display:grid;width:100%;min-height:38px;grid-template-columns:31px minmax(0,1fr) 16px;align-items:center;gap:10px;border:0;border-bottom:1px solid #edf0f4;background:transparent;cursor:pointer;text-align:left}.reminder-list button:last-child{border-bottom:0}.reminder-list button>span:nth-child(2){display:flex;min-width:0;flex-direction:column}.reminder-list strong,.reminder-list small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.reminder-list strong{color:#394659;font-size:12px}.reminder-list small{color:#929cac;font-size:10px;line-height:1.5}.reminder-list button>.el-icon{color:#a4adba}.reminder-icon{display:grid;width:28px;height:28px;place-items:center;border-radius:9px}.reminder-icon.danger{background:#fff0ef;color:var(--danger)}.reminder-icon.warning{background:#fff7e6;color:#d99012}.reminder-icon.info{background:#edf4ff;color:var(--primary)}.operational-reminder-drawer{width:min(440px,92vw)!important}.operational-reminder-drawer .el-drawer__header{margin:0;padding:22px 24px 17px;border-bottom:1px solid #edf0f4}.operational-reminder-drawer .el-drawer__body{padding:20px 24px 28px}.reminder-drawer-header{display:flex;width:100%;align-items:center;justify-content:space-between;gap:16px}.reminder-drawer-header>div{display:flex;flex-direction:column}.reminder-drawer-header>div:first-child>span{color:#9aa4b3;font-size:10px;letter-spacing:.08em}.reminder-drawer-header>div:first-child>strong{margin-top:3px;color:#273348;font-size:18px}.reminder-drawer-actions{display:flex;align-items:center;flex-direction:row!important;gap:8px}.reminder-drawer-actions .el-button+.el-button{margin-left:0}.reminder-drawer-actions .el-button.is-link{min-height:36px;padding:0 4px;font-size:12px}.reminder-drawer-close{width:36px;height:36px;min-width:36px;min-height:36px;flex:0 0 36px;padding:0;border-color:#e4e9f0;color:#667389}.reminder-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:18px}.reminder-summary>span{display:flex;min-width:0;min-height:66px;align-items:flex-start;justify-content:center;flex-direction:column;padding:10px 12px;border:1px solid #edf0f4;border-radius:12px;color:#8994a5;font-size:11px}.reminder-summary strong{margin-bottom:2px;color:#465266;font-size:20px}.reminder-summary .danger{background:#fff8f7}.reminder-summary .danger strong{color:var(--danger)}.reminder-summary .warning{background:#fffbf1}.reminder-summary .warning strong{color:#d99012}.reminder-summary .info{background:#f7faff}.reminder-summary .info strong{color:var(--primary)}.reminder-groups{display:flex;flex-direction:column;gap:22px}.reminder-group-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:9px}.reminder-group-heading>span{display:flex;min-width:0;align-items:center;gap:6px}.reminder-group-heading i{width:7px;height:7px;flex:0 0 7px;border-radius:50%;background:var(--primary)}.reminder-group.danger .reminder-group-heading i{background:var(--danger)}.reminder-group.warning .reminder-group-heading i{background:#d99012}.reminder-group-heading strong{color:#3f4c61;font-size:12px}.reminder-group-heading small{overflow:hidden;color:#9aa4b3;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.reminder-group-heading em{flex:0 0 auto;color:#8792a4;font-size:10px;font-style:normal}.reminder-drawer-list{display:flex;flex-direction:column;gap:8px}.reminder-drawer-list button{display:grid;width:100%;min-height:72px;grid-template-columns:36px minmax(0,1fr) 16px;align-items:center;gap:11px;padding:10px 12px;border:1px solid #edf0f4;border-radius:12px;background:#fff;cursor:pointer;text-align:left;transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease}.reminder-drawer-list button:hover{border-color:#d6e4fb;box-shadow:0 8px 20px #2f7df614;transform:translateY(-1px)}.reminder-drawer-list button>span:nth-child(2){display:flex;min-width:0;flex-direction:column}.reminder-drawer-list strong{color:#394659;font-size:13px;line-height:1.4}.reminder-drawer-list small{margin-top:3px;color:#929cac;font-size:11px;line-height:1.5}.reminder-drawer-list button>.el-icon{color:#a4adba}.healthy-state{display:flex;min-height:102px;align-items:center;justify-content:center;gap:11px;color:var(--success)}.healthy-state>.el-icon{font-size:28px}.healthy-state span{display:flex;flex-direction:column}.healthy-state strong{color:#3c485a;font-size:12px}.healthy-state small{color:#909aaa;font-size:10px}.business-page{max-width:1480px;margin:0 auto}.business-page-header{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:22px}.business-eyebrow{margin-bottom:4px;color:var(--primary);font-size:10px;font-weight:750;letter-spacing:.1em}.business-page-header h1{color:#121a28;font-size:28px;font-weight:760;letter-spacing:-.03em;line-height:1.25}.business-page-header>div:first-child>p:last-child{margin-top:5px;color:#7b8698;font-size:12px}.page-actions{display:flex;align-items:center;justify-content:flex-end;gap:9px;flex-wrap:wrap}.page-actions .el-upload{display:block}.business-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px}.business-summary>div,.business-summary>article{display:flex;min-width:0;min-height:88px;align-items:center;gap:12px;padding:16px 18px;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:var(--shadow)}.summary-icon,.business-summary-icon{display:grid;width:42px;height:42px;flex:0 0 42px;place-items:center;border-radius:12px;font-size:20px}.summary-icon.blue,.business-summary-icon.blue{background:#eaf2ff;color:#2f7df6}.summary-icon.sky,.business-summary-icon.sky{background:#edf8ff;color:#319fe5}.summary-icon.coral,.business-summary-icon.coral{background:#fff0ee;color:#f2675e}.summary-icon.indigo,.business-summary-icon.indigo{background:#f0efff;color:#7268e8}.business-summary-icon.green{background:#eaf9f3;color:#33b987}.business-summary-icon.amber{background:#fff6e7;color:#efa11f}.business-summary p{display:flex;min-width:0;flex-direction:column;margin:0}.business-summary small{color:#7c8799;font-size:11px}.business-summary strong{overflow:hidden;color:#172033;font-size:22px;font-weight:750;letter-spacing:-.02em;text-overflow:ellipsis;white-space:nowrap}.business-summary em{margin-top:2px;overflow:hidden;color:#9aa3b1;font-size:9px;font-style:normal;text-overflow:ellipsis;white-space:nowrap}.business-panel{overflow:hidden;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:var(--shadow)}.filter-toolbar{display:flex;min-height:70px;align-items:center;gap:9px;padding:14px 16px;border-bottom:1px solid #edf0f4;flex-wrap:wrap}.filter-toolbar .filter-search{width:min(280px,100%)}.filter-toolbar>.el-select{width:145px}.filter-toolbar>.el-date-editor{width:260px}.column-control{margin-left:auto}.stage-filter-row{display:flex;min-height:56px;align-items:center;gap:7px;padding:9px 16px;border-bottom:1px solid #edf0f4;flex-wrap:wrap}.stage-filter-row>button,.stage-filter-row .el-dropdown>button{display:inline-flex;min-height:31px;align-items:center;gap:4px;padding:0 11px;border:1px solid transparent;border-radius:7px;background:#f4f6f9;color:#667185;cursor:pointer;font-size:11px;font-weight:600;transition:all var(--transition)}.stage-filter-row>button:hover,.stage-filter-row>button.active,.stage-filter-row .el-dropdown>button:hover,.stage-filter-row .el-dropdown>button.active{border-color:#bfd6fb;background:#eaf2ff;color:#1769e8}.stage-filter-row .column-control{margin-left:auto}.batch-action-bar{display:flex;min-height:48px;align-items:center;justify-content:space-between;gap:12px;padding:8px 16px;border-bottom:1px solid #cfe0fb;background:#f2f7ff;color:#536075;font-size:12px}.batch-action-bar strong{color:var(--primary)}.batch-bar-enter-active,.batch-bar-leave-active{transition:opacity var(--transition),transform var(--transition)}.batch-bar-enter-from,.batch-bar-leave-to{opacity:0;transform:translateY(-6px)}.business-table.el-table{--el-table-border-color: #edf0f4;--el-table-header-bg-color: #fafbfd;--el-table-row-hover-bg-color: #f7faff;width:100%}.business-table.el-table:before,.business-table .el-table__inner-wrapper:before{display:none}.business-table th.el-table__cell{height:46px;background:#fafbfd;color:#6e798b;font-size:11px;font-weight:650}.business-table td.el-table__cell{height:55px;color:#4c586a;font-size:12px}.table-footer{display:flex;min-height:64px;align-items:center;justify-content:space-between;gap:18px;padding:10px 16px;border-top:1px solid #edf0f4}.table-footer>span{color:#8a95a5;font-size:11px}.dialog-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px}.dialog-form-grid .el-form-item{display:block}.dialog-form-grid .el-select,.dialog-form-grid .el-date-editor,.dialog-form-grid .el-input-number{width:100%}.dialog-form-grid .form-span-2{grid-column:span 2}.system-section-nav{display:flex;min-height:48px;align-items:center;gap:4px;margin-bottom:18px;padding:5px;overflow-x:auto;border:1px solid var(--line);border-radius:11px;background:#ffffffdb;box-shadow:0 4px 18px #182b4e09;scrollbar-width:none}.system-section-nav::-webkit-scrollbar{display:none}.system-section-nav a{display:inline-flex;min-width:max-content;height:36px;align-items:center;padding:0 15px;border-radius:7px;color:#6c7789;font-size:12px;font-weight:650;transition:color var(--transition),background var(--transition),box-shadow var(--transition)}.system-section-nav a:hover{background:#f1f5fb;color:var(--primary)}.system-section-nav a.router-link-active{background:#eaf2ff;color:#1769e8;box-shadow:inset 0 0 0 1px #cfe0fb}.system-panel-heading>div{display:flex;flex-direction:column}.system-panel-heading>span,.toolbar-note{display:inline-flex;align-items:center;gap:5px;color:#8a95a5;font-size:10px}.system-filter-toolbar .toolbar-note{margin-left:auto}.account-cell,.role-cell,.dict-type-cell{display:flex;min-width:0;align-items:center;gap:10px}.account-cell p,.role-cell p,.dict-type-cell p{display:flex;min-width:0;flex-direction:column}.account-cell strong,.role-cell strong,.dict-type-cell strong{overflow:hidden;color:#263144;font-size:12px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.account-cell span,.role-cell span,.dict-type-cell small{overflow:hidden;color:#939dad;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.status-label{display:inline-flex;align-items:center;gap:6px;color:#6d788a;font-size:11px;font-weight:650}.status-label i{width:7px;height:7px;border-radius:50%;background:#aab2bf}.status-label.is-active{color:#229b70}.status-label.is-active i{background:#2ab27d;box-shadow:0 0 0 3px #2ab27d1a}.status-label.is-disabled{color:#e0645d}.status-label.is-disabled i{background:#ef6b63;box-shadow:0 0 0 3px #ef6b631a}.switch-field{display:flex;min-height:32px;align-items:center;gap:10px;color:#7b8698;font-size:11px}.role-badge,.dict-type-cell>span{display:grid;width:36px;height:36px;flex:0 0 36px;place-items:center;border-radius:10px;font-size:16px}.role-badge.system{background:#fff3e7;color:#e88e26}.role-badge.custom,.dict-type-cell>span{background:#edf4ff;color:#347be5}.permission-tags{display:flex;align-items:center;gap:5px;flex-wrap:wrap}.permission-tags .el-tag{height:25px;font-size:10px;font-weight:600}.muted-copy{color:#9aa3b1;font-size:11px}.permission-editor{margin-top:4px;overflow:hidden;border:1px solid var(--line);border-radius:10px}.permission-editor-title{display:flex;align-items:center;justify-content:space-between;padding:12px 15px;border-bottom:1px solid var(--line);background:#fafbfd}.permission-editor-title strong{font-size:13px}.permission-editor-title span{color:#929cac;font-size:10px}.permission-table:before,.permission-table .el-table__inner-wrapper:before{display:none}.permission-level{color:#697487;font-size:10px}.dict-key{padding:4px 7px;border:1px solid #dfe6ef;border-radius:6px;background:#f7f9fc;color:#536176;font-family:SFMono-Regular,Consolas,monospace;font-size:10px}@media (max-width: 1280px){.admin-main{padding:26px 24px 32px}.dashboard-grid{grid-template-columns:repeat(12,minmax(0,1fr))}.schedule-row{grid-template-columns:52px minmax(0,1fr) auto}.schedule-row img{display:none}.filter-toolbar>.el-date-editor{width:220px}}@media (max-width: 1080px){.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-grid{grid-template-columns:1fr}.schedule-panel,.progress-panel,.team-panel,.reminder-panel{grid-column:1 / -1}.schedule-row{grid-template-columns:62px 104px minmax(0,1fr) auto}.schedule-row img{display:block;width:104px}.business-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 820px){:root{--sidebar-width: 164px}.admin-sidebar{transform:translate(-100%);transition:transform var(--transition)}.admin-shell.is-collapsed .admin-sidebar{transform:translate(0)}.mobile-nav-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;display:block;border:0;background:#111f345c;cursor:pointer}.admin-main{margin-left:0;padding:68px 16px 28px}.mobile-nav-trigger{position:fixed;top:16px;left:16px;z-index:40;display:grid;width:38px;height:38px;place-items:center;border:1px solid var(--line);border-radius:10px;background:#fff;box-shadow:var(--shadow);cursor:pointer;transition:left var(--transition)}.admin-shell.is-collapsed .mobile-nav-trigger{left:calc(var(--sidebar-width) + 12px)}.dashboard-header{align-items:flex-start;flex-direction:column}.dashboard-actions{width:100%;flex-wrap:wrap}.sync-status{width:100%}.progress-kpis{grid-template-columns:repeat(2,1fr);row-gap:16px}.progress-kpis>div{padding:0 14px}.progress-kpis>div:nth-child(2){border-right:0}.progress-content,.team-performance-grid{grid-template-columns:1fr}.ranking-section+.ranking-section{border-top:1px solid #edf0f4;border-left:0}.business-page-header{align-items:flex-start;flex-direction:column}.page-actions{width:100%;justify-content:flex-start}.filter-toolbar>.el-select,.filter-toolbar>.el-date-editor{width:calc(50% - 5px)}.column-control{margin-left:0}.system-filter-toolbar .toolbar-note{width:100%;margin-left:0}}@media (max-width: 560px){.metric-grid{grid-template-columns:1fr}.dashboard-actions .el-date-editor{width:calc(50% - 6px)}.primary-action{width:calc(50% - 6px);padding:0 10px}.schedule-row{grid-template-columns:48px minmax(0,1fr) auto}.schedule-row img{display:none}.exam-status-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.execution-priority{grid-template-columns:34px minmax(0,1fr)}.execution-priority .el-button{grid-column:1 / -1;justify-self:flex-start;margin-left:44px}.ranking-list>button{grid-template-columns:25px minmax(0,1fr) 42px}.rank-meter{display:none}.quick-grid{grid-template-columns:repeat(3,1fr);row-gap:18px}.progress-kpis{grid-template-columns:1fr}.progress-kpis>div,.progress-kpis>div:first-child,.progress-kpis>div:last-child{padding:0 0 12px;border-right:0;border-bottom:1px solid #edf0f4}.progress-kpis>div:last-child{border-bottom:0}.business-summary{grid-template-columns:1fr}.filter-toolbar .filter-search,.filter-toolbar>.el-select,.filter-toolbar>.el-date-editor{width:100%}.dialog-form-grid{grid-template-columns:1fr}.dialog-form-grid .form-span-2{grid-column:auto}.system-section-nav a{padding:0 12px}.system-section-nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;overflow:visible}.system-section-nav a{min-width:0;justify-content:center;padding:0 6px;text-align:center}.permission-editor-title{align-items:flex-start;flex-direction:column;gap:3px}}
