.app-echart-wrap[data-v-e4abd119]{width:100%;position:relative}.app-echart[data-v-e4abd119]{width:100%;height:100%}.app-echart-tip[data-v-e4abd119]{z-index:3;color:#334155;pointer-events:none;background:#fffffff5;border:1px solid #0f172a14;border-radius:6px;max-width:min(260px,100% - 18px);padding:8px 10px;font-size:12px;line-height:1.55;position:absolute;transform:translateY(-50%);box-shadow:0 10px 24px #0f172a24}.empty-shell[data-v-eca012d1]{padding:24px 0 8px}.icon-picker[data-v-abe39eee]{min-width:0}.icon-picker__current[data-v-abe39eee]{grid-template-columns:44px minmax(0,1fr) auto auto;align-items:center;gap:10px;display:grid}.icon-picker__preview[data-v-abe39eee]{border:1px solid var(--app-border);border-radius:var(--app-radius-sm);background:#fff;justify-content:center;align-items:center;height:32px;display:flex}.icon-picker__popup[data-v-abe39eee]{gap:10px;display:grid}.icon-picker__grid[data-v-abe39eee]{border:1px solid var(--app-border);border-radius:var(--app-radius-sm);grid-template-columns:repeat(auto-fill,minmax(76px,1fr));gap:8px;max-height:260px;padding:10px;display:grid;overflow:auto}.icon-picker__item[data-v-abe39eee]{border:1px solid var(--app-border);border-radius:var(--app-radius-sm);cursor:pointer;min-height:46px;color:var(--app-text);background:#fff;flex-direction:column;justify-content:center;align-items:center;gap:5px;padding:7px 6px;transition:border-color .18s,background-color .18s,color .18s;display:flex}.icon-picker__item[data-v-abe39eee]:hover{background:#156f9f0a;border-color:#156f9f73}.icon-picker__item.is-active[data-v-abe39eee]{border-color:var(--app-primary);color:var(--app-primary);background:#156f9f0f}.icon-picker__item span[data-v-abe39eee]{text-align:center;word-break:break-all;width:100%;font-size:11px;line-height:1.2}@media (width<=640px){.icon-picker__current[data-v-abe39eee]{grid-template-columns:40px minmax(0,1fr)}.icon-picker__current[data-v-abe39eee] .el-button{width:100%}}.loading-shell[data-v-cec8f269]{place-items:center;min-height:100vh;padding:20px;display:grid}.loading-card[data-v-cec8f269]{border-radius:var(--app-radius-lg);width:min(560px,100%);box-shadow:var(--app-shadow);background:linear-gradient(145deg,#fffffff0,#f6fafce0);border:1px solid #156f9f1a;flex-direction:column;gap:18px;padding:28px;display:flex}.loading-top[data-v-cec8f269]{align-items:center;gap:18px;display:flex}.loading-copy h1[data-v-cec8f269]{margin:0 0 6px;font-size:1.55rem}.loading-copy p[data-v-cec8f269]{color:var(--app-text-secondary);margin:0}.loading-track[data-v-cec8f269]{background:linear-gradient(90deg,#156f9f1f,#ee8d3d29);border-radius:999px;width:100%;height:6px;position:relative;overflow:hidden}.loading-track[data-v-cec8f269]:after{content:"";border-radius:inherit;background:linear-gradient(90deg,#156f9f00,#156f9f 38%,#ee8d3d 100%);width:38%;animation:1.45s ease-in-out infinite loading-slide-cec8f269;position:absolute;top:0;bottom:0;left:-38%;box-shadow:0 0 14px #ee8d3d38}.loading-message[data-v-cec8f269]{color:var(--app-primary);font-size:1rem;font-weight:600}small[data-v-cec8f269]{color:var(--app-text-secondary)}@keyframes loading-slide-cec8f269{0%{transform:translate(0)}to{transform:translate(365%)}}@media (width<=640px){.loading-card[data-v-cec8f269]{padding:28px 22px}.loading-top[data-v-cec8f269]{flex-direction:column;align-items:flex-start}.loading-copy h1[data-v-cec8f269]{font-size:1.45rem}}.app-logo[data-v-b696b629]{align-items:center;gap:12px;min-width:0;display:flex}.logo-mark[data-v-b696b629]{border-radius:var(--app-radius-lg);letter-spacing:.08em;color:#fff;background:linear-gradient(135deg,#1c7eb5 0%,#ee8d3d 100%);flex:none;place-items:center;width:42px;height:42px;font-weight:800;display:grid;box-shadow:0 10px 24px #1270a13d}.logo-text[data-v-b696b629]{flex-direction:column;gap:2px;min-width:0;display:flex}.logo-text strong[data-v-b696b629]{white-space:nowrap;font-size:1rem;line-height:1.1}.logo-text span[data-v-b696b629]{opacity:.68;font-size:.75rem}.collapsed .logo-mark[data-v-b696b629]{margin-inline:auto}.panel[data-v-7c273c59]{border-radius:var(--app-radius-lg);background:var(--app-surface);border:1px solid var(--app-border);flex-direction:column;min-width:0;min-height:0;padding:18px;display:flex;box-shadow:0 10px 28px #10324b12}.panel__header[data-v-7c273c59]{flex-wrap:wrap;flex:none;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px;display:flex}.panel__header>div[data-v-7c273c59]{min-width:0}.panel__header h3[data-v-7c273c59]{margin:0 0 6px;font-size:1rem;line-height:1.35}.panel__header p[data-v-7c273c59]{color:var(--app-text-secondary);margin:0}.panel__body[data-v-7c273c59]{flex:auto;min-width:0;min-height:0}@media (width<=640px){.panel[data-v-7c273c59]{padding:14px}}.stat-card[data-v-e51db235]{border-radius:var(--app-radius-lg);color:#fff;min-height:112px;box-shadow:var(--app-shadow);align-items:center;gap:14px;padding:18px;display:flex}.stat-card.primary[data-v-e51db235]{background:linear-gradient(135deg,#156f9f 0%,#2d8bbd 100%)}.stat-card.success[data-v-e51db235]{background:linear-gradient(135deg,#24936f 0%,#4db690 100%)}.stat-card.warning[data-v-e51db235]{background:linear-gradient(135deg,#d58936 0%,#edab56 100%)}.stat-card__icon[data-v-e51db235]{border-radius:var(--app-radius-lg);background:#ffffff2e;place-items:center;width:46px;height:46px;display:grid}.stat-card__content[data-v-e51db235]{flex-direction:column;gap:6px;display:flex}.stat-card__content span[data-v-e51db235],.stat-card__content small[data-v-e51db235]{opacity:.82}.stat-card__content strong[data-v-e51db235]{font-size:1.72rem;line-height:1}.app-file-preview[data-v-27327216]{flex-wrap:wrap;gap:10px;min-width:0;display:flex}.app-file-preview__item[data-v-27327216]{border:1px solid var(--app-border);background:var(--app-surface-strong);border-radius:8px;align-items:flex-start;gap:8px;min-width:0;max-width:100%;padding:8px 10px;display:flex;position:relative}.app-file-preview__item.is-image[data-v-27327216]{padding:0;overflow:hidden}.app-file-preview__image[data-v-27327216],.app-file-preview__image-loading[data-v-27327216]{background:#f4f7f9;border-radius:8px;flex:none;display:block}.app-file-preview__image-loading[data-v-27327216]{color:var(--app-text-secondary);justify-content:center;align-items:center;display:inline-flex}.app-file-preview__file-icon[data-v-27327216]{color:var(--app-text-secondary);flex:none;margin-top:3px}.app-file-preview__name[data-v-27327216]{text-align:left;white-space:normal;justify-content:flex-start;align-items:flex-start;max-width:min(520px,100%);height:auto;min-height:22px;padding:0;line-height:1.45;display:inline-flex}.app-file-preview__name span[data-v-27327216]{overflow-wrap:anywhere}.app-file-preview__remove[data-v-27327216]{flex:none;width:22px;height:22px;min-height:22px;margin-left:2px}.app-file-preview__item.is-image .app-file-preview__remove[data-v-27327216]{color:#fff;background:#173042ad;border-color:#ffffff4d;position:absolute;top:4px;right:4px}.app-file-upload[data-v-81e0917c]{flex-direction:column;align-items:flex-start;gap:10px;min-width:0;display:flex}.app-file-upload__input[data-v-81e0917c]{display:none}.app-file-upload[data-v-5973831b]{flex-direction:column;gap:10px;min-width:0;display:flex}.app-file-upload__input[data-v-5973831b]{display:none}.app-file-upload__value[data-v-5973831b]{align-items:flex-start;gap:10px;min-width:0;display:flex}.app-file-upload__actions[data-v-5973831b]{flex:none;gap:8px;display:inline-flex}@media (width<=640px){.app-file-upload__value[data-v-5973831b]{flex-direction:column}}*,:before,:after{box-sizing:border-box}html,body,#app{width:100%;height:100%;min-height:0;margin:0}html{-webkit-text-size-adjust:100%;font-size:16px}body{min-height:100vh}img{max-width:100%;display:block}button,input,textarea,select{font:inherit}a{color:inherit;text-decoration:none}:root{--app-bg:#eef3f7;--app-surface:#fffffff0;--app-surface-strong:#fff;--app-sidebar:#10324b;--app-sidebar-soft:#174867;--app-primary:#156f9f;--app-primary-soft:#d9eef8;--app-accent:#ee8d3d;--app-success:#24936f;--app-warning:#d59b29;--app-danger:#cc5c49;--app-text:#173042;--app-text-primary:#173042;--app-text-secondary:#6d8291;--app-border:#10324b1a;--app-shadow:0 10px 28px #10324b1a;--app-radius-xl:10px;--app-radius-lg:8px;--app-radius-md:8px;--app-radius-sm:6px}body{color:var(--app-text);background:linear-gradient(#f7fafc 0%,#eef3f7 100%);font-family:Segoe UI,PingFang SC,Microsoft YaHei,Helvetica Neue,sans-serif}#app{min-height:100vh}.page-shell{flex-direction:column;gap:16px;min-width:0;height:100%;min-height:0;display:flex}.page-shell>*{min-width:0}.page-grid{gap:16px;min-width:0;display:grid}.page-grid>*{min-width:0}.page-grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.page-grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}@media (width<=1100px){.page-grid.cols-2,.page-grid.cols-3{grid-template-columns:1fr}}:is(.page-shell>.panel:has(.table-footer),.page-shell>.panel:has(>.panel__body>.el-table)){flex:1;min-height:0}:is(.page-shell>.panel:has(.table-footer)>.panel__body,.page-shell>.panel:has(>.panel__body>.el-table)>.panel__body){flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}:is(.page-shell>.panel:has(.table-footer)>.panel__body>.el-table,.page-shell>.panel:has(>.panel__body>.el-table)>.panel__body>.el-table){flex:1;height:100%;min-height:240px}:is(.page-shell>.panel:has(.table-footer)>.panel__body>.el-table .el-table__inner-wrapper,.page-shell>.panel:has(>.panel__body>.el-table)>.panel__body>.el-table .el-table__inner-wrapper){height:100%}:is(.page-shell>.panel:has(.table-footer)>.panel__body>.el-table .el-table__body-wrapper,.page-shell>.panel:has(>.panel__body>.el-table)>.panel__body>.el-table .el-table__body-wrapper){min-height:0}:where(.filter-bar,.panel-actions,.student-toolbar,.dialog-toolbar,.import-filters,.api-role-dialog__toolbar){flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;min-width:0;display:flex}:where(.table-footer){justify-content:flex-end;gap:10px;margin-top:16px;display:flex}:where(.table-footer .el-pagination){white-space:normal;flex-wrap:wrap;justify-content:flex-end;gap:8px 4px}:where(.page-shell .el-table){--el-table-header-bg-color:#f7fafc;border-radius:var(--app-radius-sm);overflow:hidden}:where(.page-shell .el-table th.el-table__cell){color:var(--app-text);font-weight:700}:where(.page-shell .el-table .cell){line-height:1.45}:where(.el-dialog){border-radius:var(--app-radius-lg);flex-direction:column;max-width:calc(100vw - 32px);max-height:calc(100vh - 48px);margin-bottom:24px;display:flex;overflow:hidden}:where(.el-dialog__header){border-bottom:1px solid var(--app-border);flex:none;margin-right:0;padding:16px 20px 12px}:where(.el-dialog__body){flex:auto;min-height:0;padding:16px 20px;overflow:auto}:where(.el-dialog__footer){border-top:1px solid var(--app-border);flex:none;padding:12px 20px 16px}:where(.el-form-item:last-child){margin-bottom:0}@media (width<=640px){.page-shell{gap:12px}:is(.page-shell>.panel:has(.table-footer)>.panel__body>.el-table,.page-shell>.panel:has(>.panel__body>.el-table)>.panel__body>.el-table){min-height:220px}:where(.filter-bar,.panel-actions,.student-toolbar,.dialog-toolbar,.import-filters,.api-role-dialog__toolbar){justify-content:stretch}:where(.filter-bar,.panel-actions,.student-toolbar,.dialog-toolbar,.import-filters,.api-role-dialog__toolbar) :where(.el-input,.el-select,.el-button:not(.is-circle)){width:100%!important}:where(.table-footer),:where(.table-footer .el-pagination){justify-content:center}:where(.el-dialog){max-width:calc(100vw - 24px);max-height:calc(100vh - 24px);margin-bottom:12px;width:calc(100vw - 24px)!important;margin-top:12px!important}:where(.el-dialog__header),:where(.el-dialog__body),:where(.el-dialog__footer){padding-left:16px;padding-right:16px}}
