html,body,#app{height:100%;margin:0;font-family:var(--font-sans);color:var(--text)}.app-layout[data-v-1de4257f]{height:100vh}.app-header[data-v-1de4257f]{display:flex;align-items:center;justify-content:space-between;height:62px;padding:0 20px;background:var(--surface-glass);backdrop-filter:saturate(180%) blur(18px);-webkit-backdrop-filter:saturate(180%) blur(18px);border-bottom:1px solid var(--surface-glass-border);box-shadow:var(--header-shadow);position:relative;z-index:10}.header-left[data-v-1de4257f]{display:flex;align-items:center;gap:8px;min-width:0;overflow:hidden}.crumb[data-v-1de4257f]{font-size:13.5px;color:var(--text-muted);white-space:nowrap;letter-spacing:.2px}.crumb.is-last[data-v-1de4257f]{font-size:16px;font-weight:700;color:var(--text-strong);overflow:hidden;text-overflow:ellipsis}.crumb-sep[data-v-1de4257f]{font-size:13px;color:var(--text-faint);-webkit-user-select:none;user-select:none}.header-right[data-v-1de4257f]{display:flex;align-items:center;gap:14px}.theme-toggle[data-v-1de4257f]{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:12px;border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;transition:all .3s var(--ease-out)}.theme-toggle[data-v-1de4257f]:hover{color:var(--brand);border-color:var(--brand);transform:translateY(-1px);box-shadow:0 8px 18px -8px var(--brand-glow)}.account-dropdown[data-v-1de4257f]{cursor:pointer}.account-trigger[data-v-1de4257f]{display:flex;align-items:center;gap:8px;padding:4px 10px 4px 4px;border-radius:999px;border:1px solid transparent;transition:all .3s var(--ease-out);outline:none}.account-trigger[data-v-1de4257f]:hover{background:var(--surface-2);border-color:var(--border)}.account-avatar[data-v-1de4257f]{background:var(--brand-grad)!important;color:#fff;font-weight:700;box-shadow:0 6px 14px -6px var(--brand-glow)}.account-name[data-v-1de4257f]{font-size:14px;color:var(--text);max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-aside[data-v-1de4257f]{background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;height:100vh;overflow:hidden}.aside-brand[data-v-1de4257f]{display:flex;align-items:center;gap:12px;height:62px;padding:0 18px;border-bottom:1px solid var(--border);flex-shrink:0}.aside-scroll[data-v-1de4257f]{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin}.aside-brand-chip[data-v-1de4257f]{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:12px;background:var(--brand-grad);color:#fff;font-size:20px;box-shadow:0 8px 20px -6px var(--brand-glow)}.aside-brand-logo[data-v-1de4257f]{width:38px;height:38px;border-radius:12px;display:block;box-shadow:0 8px 20px -8px var(--brand-glow)}.aside-brand-name[data-v-1de4257f]{font-size:15px;font-weight:800;color:var(--text-strong);letter-spacing:.3px}.aside-brand-sub[data-v-1de4257f]{font-size:11px;color:var(--text-muted);margin-top:2px;letter-spacing:.5px}.aside-menu[data-v-1de4257f]{border-right:none;padding:12px 12px 16px}.aside-menu .el-menu-item[data-v-1de4257f],.aside-menu .el-sub-menu__title[data-v-1de4257f]{height:46px;margin:3px 0;border-radius:var(--r-sm);transition:all .28s var(--ease-out)}.aside-menu .el-menu-item[data-v-1de4257f]:hover,.aside-menu .el-sub-menu__title[data-v-1de4257f]:hover{background:var(--surface-2);transform:translate(2px)}.aside-menu .el-menu-item.is-active[data-v-1de4257f]{position:relative;background:var(--brand-grad-soft);color:var(--brand);font-weight:700}html.dark .aside-menu .el-menu-item.is-active[data-v-1de4257f]{color:var(--brand-2)}.aside-menu .el-menu-item.is-active[data-v-1de4257f]:before{content:"";position:absolute;left:-12px;top:50%;transform:translateY(-50%);width:4px;height:22px;border-radius:0 4px 4px 0;background:var(--brand-grad);box-shadow:0 4px 12px -2px var(--brand-glow)}.app-main[data-v-1de4257f]{background:transparent;padding:18px}.content-col[data-v-1de4257f]{display:flex;flex-direction:column;flex:1;min-width:0;height:100vh;overflow:hidden}.content-col>.app-header[data-v-1de4257f],.content-col>.tab-bar[data-v-1de4257f]{flex-shrink:0}.tab-bar[data-v-1de4257f]{display:flex;align-items:stretch;gap:6px;padding:10px 16px 0;background:var(--surface-glass);backdrop-filter:saturate(180%) blur(18px);-webkit-backdrop-filter:saturate(180%) blur(18px);border-bottom:1px solid var(--border);overflow-x:auto;scrollbar-width:none}.tab-bar[data-v-1de4257f]::-webkit-scrollbar{display:none}.tab-item[data-v-1de4257f]{display:inline-flex;align-items:center;gap:6px;padding:9px 14px;margin-bottom:-1px;border-radius:12px 12px 0 0;font-size:13.5px;color:var(--text-muted);cursor:pointer;white-space:nowrap;border:1px solid transparent;border-bottom:none;transition:color .24s var(--ease-out),background .24s var(--ease-out);-webkit-user-select:none;user-select:none;position:relative}.tab-item[data-v-1de4257f]:hover{color:var(--text);background:var(--surface-2)}.tab-item.active[data-v-1de4257f]{color:var(--brand);background:var(--app-bg);border-color:var(--border);font-weight:700}html.dark .tab-item.active[data-v-1de4257f]{color:var(--brand-2)}.tab-item.active[data-v-1de4257f]:after{content:"";position:absolute;left:14px;right:14px;bottom:-1px;height:3px;border-radius:3px 3px 0 0;background:var(--brand-grad);box-shadow:0 4px 12px -2px var(--brand-glow)}.tab-dot[data-v-1de4257f]{width:6px;height:6px;border-radius:50%;background:var(--brand);flex-shrink:0}.tab-title[data-v-1de4257f]{line-height:1}.tab-close[data-v-1de4257f]{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;margin-left:2px;border:none;background:transparent;color:var(--text-muted);border-radius:6px;cursor:pointer;transition:all .2s}.tab-close[data-v-1de4257f]:hover{background:#ef444424;color:#ef4444}.tab-close[data-v-1de4257f] .el-icon{font-size:13px}.boot-loading[data-v-1de4257f]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;height:100%;color:var(--text);font-size:14px}.boot-loading .spin[data-v-1de4257f]{font-size:28px;color:var(--brand)}.onboarding-banner[data-v-1de4257f]{display:flex;align-items:center;gap:18px;padding:20px 24px;margin-bottom:16px;background:linear-gradient(120deg,var(--surface),var(--surface-2));border:1px solid var(--border);border-radius:16px;box-shadow:var(--header-shadow)}.ob-icon[data-v-1de4257f]{display:inline-flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:14px;background:var(--brand);color:#fff;font-size:26px;flex-shrink:0}.ob-text[data-v-1de4257f]{flex:1;min-width:0}.ob-title[data-v-1de4257f]{font-size:17px;font-weight:700;color:var(--text-strong)}.ob-sub[data-v-1de4257f]{margin-top:4px;font-size:13px;color:var(--text-muted);line-height:1.6}.ob-actions[data-v-1de4257f]{display:flex;gap:10px;flex-shrink:0}@media (max-width: 768px){.onboarding-banner[data-v-1de4257f]{flex-direction:column;align-items:flex-start}.ob-actions[data-v-1de4257f]{width:100%}}.stat-card[data-v-85f49e48]{position:relative;display:flex;align-items:center;gap:16px;padding:20px 22px;border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm);overflow:hidden;transition:transform .4s var(--ease-out),box-shadow .4s var(--ease-out),border-color .4s var(--ease-out)}.stat-card--glass[data-v-85f49e48]{backdrop-filter:saturate(160%) blur(12px);-webkit-backdrop-filter:saturate(160%) blur(12px)}.stat-card[data-v-85f49e48]:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);border-color:var(--border-strong)}.stat-card[data-v-85f49e48]:after{content:"";position:absolute;top:-40%;right:-20%;width:160px;height:160px;border-radius:50%;background:radial-gradient(circle,var(--brand-soft),transparent 70%);opacity:.6;pointer-events:none}html.dark .stat-card[data-v-85f49e48]:after{opacity:.4}.stat-icon[data-v-85f49e48]{display:inline-flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:var(--r-md);font-size:26px;flex-shrink:0}.stat-body[data-v-85f49e48]{flex:1;min-width:0}.stat-label[data-v-85f49e48]{font-size:13px;color:var(--text-muted);letter-spacing:.2px}.stat-value[data-v-85f49e48]{font-size:30px;font-weight:800;line-height:1.15;margin-top:4px;letter-spacing:-.5px}.stat-sub[data-v-85f49e48]{font-size:12px;color:var(--text-muted);margin-top:4px}.stat-foot[data-v-85f49e48]{position:absolute;left:22px;right:22px;bottom:12px}.stat-bar[data-v-85f49e48]{height:5px;border-radius:999px;background:var(--surface-3);overflow:hidden}.stat-bar span[data-v-85f49e48]{display:block;height:100%;border-radius:999px;transition:width .8s var(--ease-out)}.lux-card__actions[data-v-f8765e37]{display:flex;align-items:center;gap:8px}.lux-card__body--flush[data-v-f8765e37]{padding:0}.class-selector[data-v-8da8ae5d]{width:230px;--el-select-bg-color: transparent;--el-select-input-color: var(--text-strong);--el-text-color-placeholder: rgba(15, 23, 42, .45)}.class-selector[data-v-8da8ae5d] .el-select__wrapper{min-height:46px;border-radius:var(--r-md);padding:4px 14px;background:linear-gradient(135deg,#6366f121,#8b5cf621);border:1px solid rgba(99,102,241,.28);box-shadow:0 4px 14px -6px #6366f159;transition:all .2s ease}.class-selector[data-v-8da8ae5d] .el-select__wrapper:hover{border-color:#6366f18c;box-shadow:0 6px 18px -6px #6366f180}.class-selector[data-v-8da8ae5d] .el-select__wrapper.is-focused{border-color:var(--brand);box-shadow:0 0 0 3px #6366f12e}.class-selector[data-v-8da8ae5d] .el-select__selected-item,.class-selector[data-v-8da8ae5d] .el-select__placeholder{font-size:14.5px;font-weight:700;letter-spacing:.2px}.cs-prefix-icon[data-v-8da8ae5d]{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:8px;background:var(--brand-grad);color:#fff;margin-right:2px;font-size:15px;box-shadow:0 2px 6px -2px var(--brand-glow)}.opt-name[data-v-8da8ae5d]{margin-right:8px;font-weight:600}.opt-tag[data-v-8da8ae5d]{float:right;transform:translateY(2px)}.page-head[data-v-996adb3c]{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;padding:20px 24px;border-radius:var(--r-lg);background:linear-gradient(135deg,#6366f114,#8b5cf60f 45%,#06b6d40d);border:1px solid rgba(99,102,241,.14);box-shadow:var(--shadow-sm);position:relative;overflow:hidden}.page-head[data-v-996adb3c]:before{content:"";position:absolute;left:-40px;top:-60px;width:220px;height:220px;border-radius:50%;background:radial-gradient(circle,rgba(99,102,241,.14),transparent 65%);pointer-events:none}.head-left[data-v-996adb3c]{min-width:0;position:relative;display:flex;align-items:center}.head-title-group[data-v-996adb3c]{display:flex;align-items:center;gap:28px;flex-wrap:wrap}.head-center[data-v-996adb3c]{position:relative;display:flex;justify-content:center;flex:1;min-width:240px}.class-picker-wrap[data-v-996adb3c]{display:inline-flex;align-items:center;background:#ffffffa6;border:1px solid rgba(99,102,241,.16);border-radius:var(--r-md);padding:3px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.role-tag[data-v-996adb3c]{margin-left:4px;border-radius:999px!important;border-color:var(--border)!important;height:20px;line-height:18px}.page-title[data-v-996adb3c]{font-size:24px;font-weight:800;letter-spacing:.3px;color:var(--text-strong);margin:0}.page-sub[data-v-996adb3c]{display:flex;align-items:center;gap:6px;margin:6px 0 0;font-size:13px;color:var(--text-muted)}.page-sub .el-icon[data-v-996adb3c]{font-size:14px}.page-head-datetime[data-v-996adb3c]{display:flex;align-items:center;gap:14px;padding:12px 26px 12px 12px;border-radius:var(--r-lg);background:var(--brand-grad);border:none;box-shadow:0 10px 26px -10px var(--brand-glow),inset 0 1px #ffffff38}.page-head-datetime .lux-icon-chip[data-v-996adb3c]{display:inline-flex;align-items:center;justify-content:center;width:46px;height:46px;border-radius:12px;background:#fff3;color:#fff;font-size:24px;box-shadow:inset 0 1px 2px #00000014}.dt-block[data-v-996adb3c]{text-align:left}.dt-time[data-v-996adb3c]{font-size:30px;font-weight:800;color:#fff;line-height:1.1;font-variant-numeric:tabular-nums;letter-spacing:1px;text-shadow:0 2px 4px rgba(0,0,0,.15)}.dt-date[data-v-996adb3c]{font-size:13px;color:#ffffffd9;letter-spacing:.3px;margin-top:3px}.mini-tag[data-v-996adb3c]{border-radius:999px!important;border-color:var(--border)!important;height:24px}.eq-card[data-v-996adb3c]{height:100%}.donut-wrap[data-v-996adb3c]{position:relative;height:190px}.donut[data-v-996adb3c]{height:190px}.donut-center[data-v-996adb3c]{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none}.donut-value[data-v-996adb3c]{font-size:30px;font-weight:800;color:var(--text-strong);line-height:1;font-variant-numeric:tabular-nums}.donut-value em[data-v-996adb3c]{font-size:15px;font-style:normal;margin-left:2px;color:var(--text-muted)}.donut-label[data-v-996adb3c]{margin-top:6px;font-size:12px;color:var(--text-muted)}.pill-row[data-v-996adb3c]{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:14px}.pill[data-v-996adb3c]{display:flex;align-items:center;justify-content:center;gap:5px;padding:7px 4px;border-radius:10px;background:var(--surface-2);border:1px solid var(--border);font-size:12px;color:var(--text-muted)}.pill-dot[data-v-996adb3c]{width:7px;height:7px;border-radius:50%;background:var(--pill);flex-shrink:0}.pill-value[data-v-996adb3c]{color:var(--text-strong);font-variant-numeric:tabular-nums}.hw-top[data-v-996adb3c]{display:flex;align-items:center;gap:16px}.hw-rate[data-v-996adb3c]{flex:1;min-width:0}.hw-rate-value[data-v-996adb3c]{font-size:32px;font-weight:800;line-height:1;color:var(--text-strong);font-variant-numeric:tabular-nums}.hw-rate-value em[data-v-996adb3c]{font-size:16px;font-style:normal;margin-left:2px;color:var(--text-muted)}.hw-rate-label[data-v-996adb3c]{margin-top:5px;font-size:12px;color:var(--text-muted)}.hw-rate-bar[data-v-996adb3c]{margin-top:10px}.hw-metrics[data-v-996adb3c]{display:flex;flex-direction:column;gap:6px;flex-shrink:0}.hw-metric[data-v-996adb3c]{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:118px;padding:5px 10px;border-radius:8px;background:var(--surface-2);font-size:12px;color:var(--text-muted)}.hwm-value[data-v-996adb3c]{color:var(--text-strong);font-variant-numeric:tabular-nums}.hwm-value.danger[data-v-996adb3c]{color:var(--danger)}.sub-head[data-v-996adb3c]{margin:16px 0 8px;font-size:12px;font-weight:600;color:var(--text-muted);letter-spacing:.4px}.hw-list[data-v-996adb3c]{display:flex;flex-direction:column;gap:10px}.hw-item[data-v-996adb3c]{padding:8px 10px;border-radius:10px;border:1px solid transparent;cursor:pointer;transition:background .22s var(--ease-out),border-color .22s var(--ease-out)}.hw-item[data-v-996adb3c]:hover,.hw-item[data-v-996adb3c]:focus-visible{background:var(--surface-2);border-color:var(--border);outline:none}.hw-item-top[data-v-996adb3c]{display:flex;align-items:center;gap:8px;margin-bottom:6px;font-size:13px}.hw-subject[data-v-996adb3c]{flex-shrink:0;padding:1px 7px;border-radius:6px;background:var(--brand-grad-soft);color:var(--brand);font-size:11.5px;font-weight:600}.hw-title[data-v-996adb3c]{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text)}.hw-count[data-v-996adb3c]{flex-shrink:0;font-size:12px;color:var(--text-muted);font-variant-numeric:tabular-nums}.todo-list[data-v-996adb3c]{display:flex;flex-direction:column;gap:8px}.todo-item[data-v-996adb3c]{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:12px;background:var(--surface-2);border:1px solid transparent;cursor:pointer;transition:transform .24s var(--ease-out),border-color .24s var(--ease-out),box-shadow .24s var(--ease-out)}.todo-item[data-v-996adb3c]:hover,.todo-item[data-v-996adb3c]:focus-visible{transform:translate(3px);border-color:var(--todo);box-shadow:var(--shadow-sm);outline:none}.todo-icon[data-v-996adb3c]{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:10px;flex-shrink:0;background:var(--surface-3);background:color-mix(in srgb,var(--todo) 14%,transparent);color:var(--todo);font-size:17px}.todo-main[data-v-996adb3c]{flex:1;min-width:0}.todo-label[data-v-996adb3c]{font-size:13.5px;font-weight:600;color:var(--text-strong)}.todo-sub[data-v-996adb3c]{margin-top:2px;font-size:11.5px;color:var(--text-muted)}.todo-count[data-v-996adb3c]{flex-shrink:0;font-size:17px;font-weight:800;color:var(--todo);font-variant-numeric:tabular-nums}.todo-arrow[data-v-996adb3c]{color:var(--text-faint);font-size:13px;flex-shrink:0}.my-todo[data-v-996adb3c]{margin-top:14px;padding-top:14px;border-top:1px dashed var(--border-soft)}.my-todo-head[data-v-996adb3c]{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.my-todo-title[data-v-996adb3c]{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:700;color:var(--text-strong)}.my-todo-hint[data-v-996adb3c]{font-size:11px;color:var(--text-faint)}.my-todo-add[data-v-996adb3c]{display:flex;gap:8px;margin-bottom:12px}.my-todo-add .el-input[data-v-996adb3c]{flex:1;min-width:0}.my-todo-date[data-v-996adb3c]{width:138px;flex-shrink:0}.my-todo-list[data-v-996adb3c]{display:flex;flex-direction:column;gap:7px}.my-todo-item[data-v-996adb3c]{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:11px;background:var(--surface-2);border:1px solid transparent;transition:background .22s var(--ease-out),opacity .22s var(--ease-out),transform .22s var(--ease-out)}.my-todo-item[data-v-996adb3c]:hover{border-color:var(--border-soft)}.my-todo-item.done[data-v-996adb3c]{opacity:.62}.my-todo-main[data-v-996adb3c]{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.my-todo-content[data-v-996adb3c]{font-size:13px;color:var(--text-strong);word-break:break-word;transition:color .22s var(--ease-out)}.my-todo-item.done .my-todo-content[data-v-996adb3c]{text-decoration:line-through;color:var(--text-muted)}.my-todo-deadline[data-v-996adb3c]{display:inline-flex;align-items:center;gap:4px;font-size:11px;color:var(--text-muted);font-variant-numeric:tabular-nums}.my-todo-deadline.overdue[data-v-996adb3c]{color:var(--danger);font-weight:600}.rank-list[data-v-996adb3c]{display:flex;flex-direction:column;gap:9px}.rank-item[data-v-996adb3c]{display:flex;align-items:center;gap:12px}.rank-no[data-v-996adb3c]{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:9px;flex-shrink:0;background:var(--surface-2);color:var(--text-muted);font-size:12.5px;font-weight:700;font-variant-numeric:tabular-nums}.rank-item.top-1 .rank-no[data-v-996adb3c]{background:linear-gradient(135deg,#fbbf24,#f59e0b);color:#fff;box-shadow:0 4px 12px -4px #f59e0b99}.rank-item.top-2 .rank-no[data-v-996adb3c]{background:linear-gradient(135deg,#cbd5e1,#94a3b8);color:#fff}.rank-item.top-3 .rank-no[data-v-996adb3c]{background:linear-gradient(135deg,#fdba74,#ea9a5c);color:#fff}.rank-main[data-v-996adb3c]{flex:1;min-width:0}.rank-name[data-v-996adb3c]{display:flex;align-items:baseline;gap:7px;font-size:13.5px;font-weight:600;color:var(--text-strong)}.rank-no-text[data-v-996adb3c]{font-size:11.5px;font-weight:400;color:var(--text-faint)}.rank-bar[data-v-996adb3c]{margin-top:5px;height:6px;border-radius:999px;background:var(--surface-2);overflow:hidden}.rank-bar-fill[data-v-996adb3c]{display:block;height:100%;border-radius:999px;background:var(--brand-grad);transition:width .5s var(--ease-out)}.rank-points[data-v-996adb3c]{flex-shrink:0;min-width:44px;text-align:right;font-size:15px;font-weight:800;color:var(--brand);font-variant-numeric:tabular-nums}@media (max-width: 1200px){.hw-top[data-v-996adb3c]{flex-direction:column;align-items:stretch;gap:12px}.hw-metrics[data-v-996adb3c]{flex-direction:row}.hw-metric[data-v-996adb3c]{flex:1;min-width:0}}.tt-today[data-v-996adb3c]{display:flex;flex-direction:column;gap:12px}.tt-current[data-v-996adb3c]{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:#fff7f0;border:1px solid #f0b488;border-radius:10px;padding:10px 14px}.tt-now-badge[data-v-996adb3c]{color:#e64340;font-weight:700;font-size:13px}.tt-subject[data-v-996adb3c]{font-weight:800;font-size:17px}.tt-period[data-v-996adb3c]{color:#606266;font-size:13px}.tt-room[data-v-996adb3c]{color:#909399;font-size:12px}.tt-next[data-v-996adb3c]{background:#f0f7ff;border:1px solid #b3d4ff;border-radius:10px;padding:10px 14px;color:#606266;font-size:14px}.tt-done-all[data-v-996adb3c]{background:#f0f9eb;border-radius:10px;padding:12px 14px;color:#529b2e;font-weight:600}.tt-today-list[data-v-996adb3c]{display:flex;flex-wrap:wrap;gap:8px}.tt-today-item[data-v-996adb3c]{display:inline-flex;align-items:center;gap:6px;background:#f5f7fa;border:1px solid #e4e7ed;border-radius:8px;padding:5px 10px;font-size:13px;color:#606266}.tt-today-item.st-DONE[data-v-996adb3c]{opacity:.55}.tt-today-item.st-NOW[data-v-996adb3c]{background:#fef0f0;border-color:#f0b0b0;color:#c0392b;font-weight:600}.tt-today-item i[data-v-996adb3c]{font-style:normal}.t-item-name[data-v-996adb3c]{font-weight:600}.t-item-time[data-v-996adb3c]{color:#909399;font-size:12px}.tt-today-side[data-v-996adb3c]{display:flex;gap:14px;align-items:center;background:#f9fafc;border-radius:10px;padding:10px 16px}.tt-side-row[data-v-996adb3c]{display:flex;align-items:baseline;gap:4px;color:#909399;font-size:12px}.tt-side-row b[data-v-996adb3c]{font-size:20px;font-weight:800;color:var(--brand)}.tt-side-row b.done[data-v-996adb3c]{color:#34d399}.tt-side-row b.todo[data-v-996adb3c]{color:#fbbf24}.page-backbar[data-v-4967e4a8]{display:flex;align-items:center;gap:10px;margin-bottom:14px;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:8px 14px}.crumb-title[data-v-4967e4a8]{flex-shrink:0;font-size:15px;font-weight:600;color:var(--text-strong)}.crumb-extra[data-v-4967e4a8]{margin-left:auto;display:inline-flex;align-items:center;gap:10px;color:var(--text-muted);font-size:13px;flex-wrap:wrap}.stat-card[data-v-34d201e9]{text-align:center;margin-bottom:12px}.stat-label[data-v-34d201e9]{color:var(--text-muted);font-size:13px}.stat-value[data-v-34d201e9]{font-size:30px;font-weight:700;margin-top:8px}.stat-sub[data-v-34d201e9]{color:var(--text-faint);font-size:12px;margin-top:4px}.card-head[data-v-34d201e9]{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.clickable-row[data-v-34d201e9]{cursor:pointer}.chart-box[data-v-34d201e9]{height:320px}.cal-nav[data-v-34d201e9]{display:flex;align-items:center;gap:4px}.cal-title[data-v-34d201e9]{font-size:14px;font-weight:600}.cal-legend[data-v-34d201e9]{display:flex;gap:14px;margin-bottom:10px;flex-wrap:wrap}.lg[data-v-34d201e9]{font-size:12px;color:var(--text-muted);display:inline-flex;align-items:center;gap:4px}.lg i[data-v-34d201e9]{width:12px;height:12px;border-radius:3px;display:inline-block;border:1px solid #e4e7ed}.calendar[data-v-34d201e9]{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.cal-week[data-v-34d201e9]{text-align:center;font-size:12px;color:var(--text-muted);padding-bottom:4px}.cal-cell[data-v-34d201e9]{border:1px solid var(--border);border-radius:6px;min-height:56px;padding:4px 6px}.cal-cell.blank[data-v-34d201e9]{border:none;background:transparent}.cal-day[data-v-34d201e9]{font-size:12px;color:var(--text)}.cal-info[data-v-34d201e9]{margin-top:4px;display:flex;flex-direction:column;gap:1px}.cal-cnt[data-v-34d201e9]{font-size:12px;font-weight:600;color:var(--text)}.cal-rate[data-v-34d201e9]{font-size:11px;color:var(--text-muted)}@media (max-width: 768px){.chart-box[data-v-34d201e9]{height:260px}.stat-value[data-v-34d201e9]{font-size:24px}.cal-cell[data-v-34d201e9]{min-height:46px;padding:2px 4px}.cal-cnt[data-v-34d201e9]{font-size:11px}}.card-head[data-v-7ebdf861]{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.hw-select[data-v-7ebdf861]{width:420px;max-width:100%}.overview[data-v-7ebdf861]{display:flex;gap:16px;margin-top:8px;flex-wrap:wrap}.ov-item[data-v-7ebdf861]{flex:1;min-width:120px;background:var(--surface-2);border-radius:8px;padding:14px 16px;text-align:center}.ov-item.ok[data-v-7ebdf861]{background:var(--el-color-success-light-9)}.ov-item.bad[data-v-7ebdf861]{background:var(--el-color-danger-light-9)}.ov-item.warn[data-v-7ebdf861]{background:var(--el-color-warning-light-9)}.ov-num[data-v-7ebdf861]{font-size:26px;font-weight:700;color:var(--text)}.ov-item.ok .ov-num[data-v-7ebdf861]{color:#67c23a}.ov-item.bad .ov-num[data-v-7ebdf861]{color:#f56c6c}.ov-item.warn .ov-num[data-v-7ebdf861]{color:#e6a23c}.ov-label[data-v-7ebdf861]{font-size:13px;color:var(--text-muted);margin-top:4px}.tab-actions[data-v-7ebdf861]{margin-bottom:12px}.img-thumbs[data-v-7ebdf861]{display:inline-flex;gap:4px}.thumb[data-v-7ebdf861]{width:44px;height:44px;border-radius:4px}.status-bar[data-v-7ebdf861]{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:16px}.status-label[data-v-7ebdf861]{font-size:14px;color:var(--text)}.status-chips[data-v-7ebdf861]{display:flex;gap:8px;flex-wrap:wrap}.chip[data-v-7ebdf861]{border:1.5px solid;border-radius:16px;padding:4px 14px;font-size:13px;cursor:pointer;-webkit-user-select:none;user-select:none;transition:all .15s}.chip-pts[data-v-7ebdf861]{font-size:11px;opacity:.85;margin-left:2px}.scan-panel[data-v-7ebdf861]{background:var(--surface-2);border-radius:10px;padding:14px}.panel-title[data-v-7ebdf861]{display:flex;align-items:center;gap:6px;font-size:15px;font-weight:600;color:var(--text);margin-bottom:12px;flex-wrap:wrap}.panel-title .tip[data-v-7ebdf861]{color:var(--text-muted);cursor:help}.sub-tip[data-v-7ebdf861]{font-size:12px;color:var(--text-muted);font-weight:400}.scan-feedback[data-v-7ebdf861]{margin-top:12px;border:2px solid;border-radius:8px;padding:10px 14px;background:var(--surface)}.fb-name[data-v-7ebdf861]{display:flex;align-items:center;gap:8px;font-size:16px;font-weight:600;flex-wrap:wrap}.fb-stat[data-v-7ebdf861]{font-size:13px;color:var(--text-muted);margin-top:4px}.scan-log[data-v-7ebdf861]{margin-top:10px}.log-item[data-v-7ebdf861]{font-size:12px;color:var(--text);padding:3px 0;display:flex;align-items:center;gap:6px}.log-dot[data-v-7ebdf861]{width:8px;height:8px;border-radius:50%;display:inline-block}.grid-actions[data-v-7ebdf861]{margin-bottom:10px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.mode-switch[data-v-7ebdf861]{margin-left:auto}.filter-bar[data-v-7ebdf861]{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px;padding:8px 10px;background:var(--surface-2);border-radius:8px}.filter-label[data-v-7ebdf861]{font-size:13px;color:var(--text)}.filter-count[data-v-7ebdf861]{font-size:12px;color:var(--text-muted);margin-left:4px}.select-bar[data-v-7ebdf861]{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:10px;padding:6px 10px;background:var(--surface-2);border-radius:8px}.sel-count[data-v-7ebdf861]{font-size:13px;color:var(--text)}.sel-count b[data-v-7ebdf861]{color:var(--brand)}.stu-grid[data-v-7ebdf861]{display:grid;grid-template-columns:repeat(auto-fill,minmax(86px,1fr));gap:8px}.stu-card[data-v-7ebdf861]{position:relative;border:1.5px solid;border-radius:8px;padding:8px 4px;text-align:center;cursor:pointer;transition:transform .1s,box-shadow .15s}.stu-card[data-v-7ebdf861]:active{transform:scale(.95)}.stu-card.pickable[data-v-7ebdf861]{padding-top:18px;border-style:dashed}.stu-card.pickable[data-v-7ebdf861]:hover{box-shadow:0 0 0 1px var(--text-faint)}.stu-card.selected[data-v-7ebdf861]{box-shadow:0 0 0 2px var(--brand);border-color:var(--brand)!important;border-style:solid}.stu-check[data-v-7ebdf861]{position:absolute;top:3px;right:4px;color:var(--brand);font-size:16px;font-weight:700}.stu-name[data-v-7ebdf861]{font-size:14px;font-weight:600}.stu-status[data-v-7ebdf861]{font-size:11px;margin-top:2px;opacity:.8}.pie-box[data-v-7ebdf861]{height:300px}.unsub-names[data-v-7ebdf861]{min-height:60px}@media (max-width: 768px){.hw-select[data-v-7ebdf861]{width:100%}.ov-item[data-v-7ebdf861]{min-width:40%}.pie-box[data-v-7ebdf861]{height:240px}}.mb[data-v-35f72bcd]{margin-bottom:12px}.panel-head[data-v-35f72bcd]{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.card-title[data-v-35f72bcd]{font-weight:700;font-size:15px}.tip[data-v-35f72bcd]{font-size:12px;color:var(--text-muted)}.toolbar[data-v-35f72bcd]{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.gen[data-v-35f72bcd]{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.gen-label[data-v-35f72bcd]{font-weight:600}.grid-wrap[data-v-35f72bcd]{overflow:auto;max-height:62vh;border:1px solid var(--border, #ebeef5);border-radius:8px}.score-grid[data-v-35f72bcd]{border-collapse:collapse;width:100%;font-size:13px}.score-grid th[data-v-35f72bcd],.score-grid td[data-v-35f72bcd]{border:1px solid var(--border, #ebeef5);padding:4px 6px;text-align:center}.score-grid thead th[data-v-35f72bcd]{background:var(--surface-2, #f5f7fa);position:sticky;top:0;z-index:2}.sticky-col[data-v-35f72bcd]{position:sticky;left:0;background:var(--surface, #fff);z-index:1;text-align:left;white-space:nowrap;min-width:130px}.score-grid thead .sticky-col[data-v-35f72bcd]{z-index:3}.qcol[data-v-35f72bcd]{min-width:92px}.qhead[data-v-35f72bcd]{display:flex;flex-direction:column;align-items:center;gap:2px}.q-full[data-v-35f72bcd]{color:var(--text-muted);margin-left:3px;font-weight:400}.qstat[data-v-35f72bcd]{font-size:11px;color:var(--text-muted)}.sum-col[data-v-35f72bcd]{min-width:110px}.sum-val[data-v-35f72bcd]{font-weight:700}.sum-val.ok[data-v-35f72bcd]{color:#16a34a}.sum-val.over[data-v-35f72bcd]{color:#dc2626}.sum-val.less[data-v-35f72bcd]{color:#d97706}.sum-tip[data-v-35f72bcd]{display:block;font-size:11px;color:#d97706}.sum-tip.up[data-v-35f72bcd]{color:#dc2626}.sum-tip.ok[data-v-35f72bcd]{color:#16a34a}.cell[data-v-35f72bcd] .el-input__wrapper{box-shadow:none}.cell.over[data-v-35f72bcd] .el-input__inner{color:#dc2626;font-weight:700}.card-head[data-v-6796fe9d]{display:flex;align-items:center;justify-content:space-between}.subject-rows[data-v-6796fe9d]{display:flex;flex-direction:column;gap:6px;margin-top:8px}.subject-row[data-v-6796fe9d]{display:flex;gap:8px;align-items:center}.subject-presets[data-v-6796fe9d]{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.presets-label[data-v-6796fe9d]{font-size:13px;color:var(--text-muted)}.actions[data-v-6796fe9d]{margin-top:12px;display:flex;align-items:center;gap:12px}.tip[data-v-6796fe9d]{font-size:12px;color:var(--text-muted)}.toolbar[data-v-6796fe9d]{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-bottom:12px}.toolbar .tip[data-v-6796fe9d]{flex-basis:100%;margin-top:2px}.lock-panel[data-v-6796fe9d]{display:flex;flex-direction:column;gap:8px;padding:12px 14px;margin-bottom:12px;border:1px solid var(--border);border-radius:var(--r-md, 12px);background:var(--surface-2)}.lock-panel.locked[data-v-6796fe9d]{border-color:#ef444466;background:#ef44440f}.lock-row[data-v-6796fe9d]{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.lock-row.wrap[data-v-6796fe9d]{align-items:flex-start}.lock-label[data-v-6796fe9d]{font-size:13px;font-weight:700;color:var(--text-strong);min-width:48px}.lock-hint[data-v-6796fe9d]{font-size:12px;color:var(--text-muted)}.subject-lock[data-v-6796fe9d]{display:inline-flex;align-items:center;gap:4px}.head-actions[data-v-6796fe9d]{display:flex;align-items:center;gap:10px}.score-cell[data-v-6796fe9d]{display:flex;flex-direction:column;gap:2px}.score-err[data-v-6796fe9d]{color:#f56c6c;font-size:11px;line-height:1.2}.score-invalid[data-v-6796fe9d] .el-input__wrapper{box-shadow:0 0 0 1px #f56c6c inset!important}.cell-grid[data-v-6796fe9d]{display:flex;flex-direction:column;gap:4px}.cell-grid[data-v-6796fe9d] .el-input--small .el-input__wrapper{padding:1px 6px}.manual-total[data-v-6796fe9d]{color:#d97706;font-weight:700}.auto-total[data-v-6796fe9d]{color:#64748b}.subject-rows[data-v-1b85fbc7]{display:flex;flex-direction:column;gap:6px;margin-top:8px}.subject-row[data-v-1b85fbc7]{display:flex;gap:8px;align-items:center}.subject-presets[data-v-1b85fbc7]{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.presets-label[data-v-1b85fbc7]{font-size:13px;color:var(--text-muted)}.ctrl-card[data-v-be8a2b34]{margin-bottom:14px}.ctrl-row[data-v-be8a2b34]{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.mode-group[data-v-be8a2b34]{margin-left:4px}.spacer[data-v-be8a2b34]{flex:1}.tip-alert[data-v-be8a2b34]{margin-bottom:14px}.stat-row[data-v-be8a2b34]{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-bottom:14px}.stat-card[data-v-be8a2b34]{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:14px 16px;box-shadow:var(--header-shadow)}.stat-label[data-v-be8a2b34]{font-size:12.5px;color:var(--text-muted);margin-bottom:6px}.stat-value[data-v-be8a2b34]{font-size:22px;font-weight:800;color:var(--text-strong);font-variant-numeric:tabular-nums}.stat-value .hi[data-v-be8a2b34]{color:var(--brand)}.stat-value .lo[data-v-be8a2b34]{color:#f59e0b}.stat-value .sep[data-v-be8a2b34]{color:var(--text-faint);margin:0 4px;font-weight:400}.accent[data-v-be8a2b34]{color:var(--brand)}html.dark .accent[data-v-be8a2b34]{color:var(--brand-2)}.grid-card[data-v-be8a2b34] .el-card__header{padding:12px 16px}.card-head[data-v-be8a2b34]{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.card-head>span[data-v-be8a2b34]:first-child{font-weight:700;font-size:15px;color:var(--text-strong)}.list-card[data-v-be8a2b34]{margin-top:16px}.list-card[data-v-be8a2b34] .el-card__header{padding:12px 16px}.exam-name[data-v-be8a2b34]{font-weight:600;color:var(--text-strong);margin-right:8px}.exam-date[data-v-be8a2b34]{font-size:12px;color:var(--text-muted)}.name-cell[data-v-be8a2b34]{display:inline-flex;align-items:center;gap:6px}.c-pass[data-v-be8a2b34]{color:#2563eb;font-weight:700}.c-exc[data-v-be8a2b34]{color:#10b981;font-weight:700}.c-good[data-v-be8a2b34]{color:#f59e0b;font-weight:700}.c-fail[data-v-be8a2b34]{color:#ef4444;font-weight:700}html.dark .c-pass[data-v-be8a2b34]{color:#60a5fa}html.dark .c-exc[data-v-be8a2b34]{color:#34d399}html.dark .c-good[data-v-be8a2b34]{color:#fbbf24}html.dark .c-fail[data-v-be8a2b34]{color:#f87171}.score-cell[data-v-be8a2b34]{display:inline-flex;flex-direction:column;align-items:center;gap:2px;line-height:1.2}.score-cell>b[data-v-be8a2b34]{font-size:14px;font-variant-numeric:tabular-nums}.level-tag[data-v-be8a2b34]{border:none!important;cursor:default;font-weight:700}.lv-a-plus[data-v-be8a2b34]{background:#04785729!important;color:#047857!important}.lv-a[data-v-be8a2b34]{background:#05966929!important;color:#059669!important}.lv-b-plus[data-v-be8a2b34]{background:#2563eb24!important;color:#2563eb!important}.lv-b[data-v-be8a2b34]{background:#0891b224!important;color:#0891b2!important}.lv-c-plus[data-v-be8a2b34]{background:#d9770629!important;color:#d97706!important}.lv-c[data-v-be8a2b34]{background:#dc262624!important;color:#dc2626!important}html.dark .lv-a-plus[data-v-be8a2b34]{background:#10b98138!important;color:#34d399!important}html.dark .lv-a[data-v-be8a2b34]{background:#34d39933!important;color:#6ee7b7!important}html.dark .lv-b-plus[data-v-be8a2b34]{background:#60a5fa33!important;color:#93c5fd!important}html.dark .lv-b[data-v-be8a2b34]{background:#22d3ee33!important;color:#67e8f9!important}html.dark .lv-c-plus[data-v-be8a2b34]{background:#fbbf2433!important;color:#fbbf24!important}html.dark .lv-c[data-v-be8a2b34]{background:#f8717133!important;color:#f87171!important}.rank-hint[data-v-be8a2b34]{font-size:11px;color:var(--text-faint);margin-left:2px;font-weight:400}.absent-tag[data-v-be8a2b34]{display:inline-block;font-size:12px;color:var(--text-muted);background:var(--surface-2);border:1px dashed var(--border);border-radius:6px;padding:1px 6px}.absent-tag.mini[data-v-be8a2b34]{padding:0 4px}.muted[data-v-be8a2b34]{color:var(--text-faint)}.mini-cell[data-v-be8a2b34]{display:inline-flex;align-items:baseline;gap:3px;margin-right:10px;font-size:12.5px}.mini-sub[data-v-be8a2b34]{color:var(--text-muted);font-size:11.5px}.mini-cell .c-pass[data-v-be8a2b34],.mini-cell .c-exc[data-v-be8a2b34],.mini-cell .c-fail[data-v-be8a2b34]{font-weight:600}@media (max-width: 980px){.stat-row[data-v-be8a2b34]{grid-template-columns:repeat(2,1fr)}}.card-head[data-v-dd3e49cf]{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px}.head-title[data-v-dd3e49cf]{display:inline-flex;align-items:center;gap:2ch;font-weight:700;font-size:16px}.head-right[data-v-dd3e49cf]{display:flex;align-items:center;gap:8px}.recommend-bar[data-v-dd3e49cf]{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:linear-gradient(90deg,#eef4ff,#f5f7ff);border:1px solid #d6e4ff;border-radius:10px;padding:10px 14px;margin-bottom:14px;color:#303133;font-size:14px}.overview[data-v-dd3e49cf]{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}.ov-item[data-v-dd3e49cf]{border:1px solid var(--border);border-radius:12px;padding:14px;text-align:center;background:#fff}.ov-rate[data-v-dd3e49cf]{border-left:4px solid var(--accent)}.ov-value[data-v-dd3e49cf]{font-size:26px;font-weight:800;color:var(--text-strong);margin:6px 0;font-variant-numeric:tabular-nums}.ov-value em[data-v-dd3e49cf]{font-size:13px;font-style:normal;color:var(--text-muted);font-weight:400}.ov-label[data-v-dd3e49cf]{font-size:13px;color:var(--text-muted)}.ov-sub[data-v-dd3e49cf]{font-size:12px;color:var(--text-muted)}.ov-sub.up[data-v-dd3e49cf]{color:var(--success)}.ov-sub.down[data-v-dd3e49cf]{color:var(--danger)}.ov-present .ov-value[data-v-dd3e49cf]{color:var(--success)}.ov-late .ov-value[data-v-dd3e49cf]{color:var(--warning)}.ov-leave .ov-value[data-v-dd3e49cf]{color:#909399}.ov-absent .ov-value[data-v-dd3e49cf]{color:var(--danger)}.alert-row[data-v-dd3e49cf]{margin-top:14px;display:flex;flex-direction:column;gap:8px}.alert-box[data-v-dd3e49cf]{border-radius:10px;padding:10px 14px;font-size:13px;display:flex;align-items:center;flex-wrap:wrap;gap:6px}.alert-box.warn[data-v-dd3e49cf]{background:#fdf6ec;border:1px solid #f3d19e;color:#b88230}.alert-box.danger[data-v-dd3e49cf]{background:#fef0f0;border:1px solid #fbc4c4;color:#c45656}.alert-tag[data-v-dd3e49cf]{background:#fff;border:1px solid #e4e7ed;border-radius:4px;padding:1px 6px}.quick-btns[data-v-dd3e49cf]{display:flex;gap:10px;flex-wrap:wrap}.hint[data-v-dd3e49cf]{color:var(--text-muted);font-size:12px;margin-top:10px}.mark-form[data-v-dd3e49cf]{margin-top:4px}.list-head[data-v-dd3e49cf]{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px}.list-foot[data-v-dd3e49cf]{color:var(--text-muted);font-size:12px;margin-top:8px}.trend-wrap[data-v-dd3e49cf]{display:flex;align-items:flex-end;gap:4px;height:130px;overflow-x:auto;padding-top:4px}.trend-col[data-v-dd3e49cf]{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;min-width:16px;flex:1}.trend-bar[data-v-dd3e49cf]{width:12px;border-radius:3px 3px 0 0;min-height:2px}.trend-label[data-v-dd3e49cf]{font-size:10px;color:var(--text-muted);margin-top:4px;white-space:nowrap}.oc-hint[data-v-dd3e49cf]{color:var(--text-muted);font-size:13px;margin-bottom:10px}.oc-list[data-v-dd3e49cf]{max-height:320px;overflow-y:auto;display:grid;grid-template-columns:repeat(3,1fr);gap:4px}.oc-item[data-v-dd3e49cf]{display:flex;align-items:center;gap:6px;padding:4px 8px;border-radius:6px;border:1px solid transparent;cursor:pointer;font-size:13px}.oc-item[data-v-dd3e49cf]:hover{background:#f5f7fa}.oc-item.checked[data-v-dd3e49cf]{background:#f0f9eb;border-color:#b3e19d}.oc-no[data-v-dd3e49cf]{color:var(--text-muted);font-size:12px}.oc-name[data-v-dd3e49cf]{font-weight:600}.oc-remark[data-v-dd3e49cf]{margin-top:12px}.oc-points[data-v-dd3e49cf]{margin-top:8px;color:var(--warning);font-size:13px}.pf-head[data-v-dd3e49cf]{text-align:center}.pf-name[data-v-dd3e49cf]{font-size:20px;font-weight:800}.pf-no[data-v-dd3e49cf]{color:var(--text-muted);font-size:13px}.pf-stats[data-v-dd3e49cf]{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-top:14px}.pf-stat[data-v-dd3e49cf]{text-align:center;border:1px solid var(--border);border-radius:10px;padding:10px 4px}.pf-stat b[data-v-dd3e49cf]{display:block;font-size:20px;font-weight:800}.pf-stat span[data-v-dd3e49cf]{font-size:11px;color:var(--text-muted)}.pf-stat b.warn[data-v-dd3e49cf]{color:var(--warning)}.pf-stat b.info[data-v-dd3e49cf]{color:#909399}.pf-stat b.danger[data-v-dd3e49cf]{color:var(--danger)}.pf-stat b.rate[data-v-dd3e49cf]{color:var(--success)}.cal-grid[data-v-dd3e49cf]{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.cal-cell[data-v-dd3e49cf]{aspect-ratio:1;display:flex;align-items:center;justify-content:center;border-radius:6px;font-size:12px;background:#f5f7fa;color:var(--text-muted)}.cal-cell.cal-PRESENT[data-v-dd3e49cf]{background:#e8f7ee;color:#2f9e44;font-weight:600}.cal-cell.cal-LATE[data-v-dd3e49cf]{background:#fdf6ec;color:#b88230;font-weight:600}.cal-cell.cal-LEAVE[data-v-dd3e49cf]{background:#f0f2f5;color:#606266;font-weight:600}.cal-cell.cal-ABSENT[data-v-dd3e49cf]{background:#fef0f0;color:#c45656;font-weight:600}.cal-legend[data-v-dd3e49cf]{display:flex;gap:12px;margin-top:10px;flex-wrap:wrap;font-size:12px;color:var(--text-muted)}.lg[data-v-dd3e49cf]{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:4px;vertical-align:middle}.lg.cal-PRESENT[data-v-dd3e49cf]{background:#2f9e44}.lg.cal-LATE[data-v-dd3e49cf]{background:#b88230}.lg.cal-LEAVE[data-v-dd3e49cf]{background:#909399}.lg.cal-ABSENT[data-v-dd3e49cf]{background:#c45656}.lg.cal-none[data-v-dd3e49cf]{background:#e4e7ed}@media (max-width: 900px){.overview[data-v-dd3e49cf]{grid-template-columns:repeat(2,1fr)}.pf-stats[data-v-dd3e49cf]{grid-template-columns:repeat(3,1fr)}}.seat-page[data-v-c4529f8c]{padding:4px}.card-head[data-v-c4529f8c]{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px}.page-title[data-v-c4529f8c]{font-size:18px;font-weight:700;margin-right:12px}.head-actions[data-v-c4529f8c]{display:flex;align-items:center;gap:10px}.grid-wrap[data-v-c4529f8c]{overflow-x:auto}.grid-toolbar[data-v-c4529f8c]{display:flex;align-items:center;gap:16px;margin-bottom:12px;flex-wrap:wrap}.hint[data-v-c4529f8c]{font-size:12px;color:var(--text-muted)}.podium[data-v-c4529f8c]{height:32px;line-height:32px;text-align:center;background:#f4f4f5;border:1px solid #dcdfe6;border-radius:6px;margin-bottom:10px;letter-spacing:10px;color:#909399}.seat-grid[data-v-c4529f8c]{display:grid;gap:8px;touch-action:none}.seat-row[data-v-c4529f8c]{display:contents}.seat-cell[data-v-c4529f8c]{height:64px;border:1px dashed var(--text-faint);border-radius:8px;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;background:var(--surface);transition:all .15s;-webkit-user-select:none;user-select:none;touch-action:none;position:relative;padding:2px}.seat-cell[data-v-c4529f8c]:hover{border-color:var(--brand)}.seat-cell.free-seat[data-v-c4529f8c]{border-style:dashed}.seat-cell.occupied[data-v-c4529f8c]{border-style:solid;border-color:var(--el-color-success);background:var(--el-color-success-light-9)}.seat-cell.locked[data-v-c4529f8c]{border-color:#e6a23c}.seat-cell.aisle[data-v-c4529f8c]{background:#f5f5f5;border-style:dashed;border-color:#dcdfe6;cursor:default;color:#bbb}.seat-cell.drag-source[data-v-c4529f8c]{box-shadow:0 0 0 3px var(--brand);opacity:.6}.seat-cell.drag-target[data-v-c4529f8c]{background:var(--brand-soft);border-color:var(--brand);border-style:solid}.seat-name[data-v-c4529f8c]{font-weight:600;color:var(--text-strong);font-size:13px;display:flex;align-items:center;gap:4px}.seat-no[data-v-c4529f8c]{font-size:11px;color:var(--text-muted)}.seat-empty[data-v-c4529f8c]{color:var(--text-faint);font-size:13px}.aisle-label[data-v-c4529f8c]{font-size:12px}.seat-badges[data-v-c4529f8c]{position:absolute;top:2px;right:4px;display:flex;gap:2px;font-size:11px}.gender-dot[data-v-c4529f8c]{width:8px;height:8px;border-radius:50%;display:inline-block}.gender-dot.m[data-v-c4529f8c]{background:#409eff}.gender-dot.f[data-v-c4529f8c]{background:#f56c6c}.legend[data-v-c4529f8c]{display:flex;gap:16px;margin-top:14px;flex-wrap:wrap;font-size:12px;color:var(--text)}.legend .lg[data-v-c4529f8c]{display:inline-block;width:14px;height:14px;vertical-align:middle;margin-right:4px;border-radius:3px}.legend .dot-m[data-v-c4529f8c]{background:#409eff;border-radius:50%}.legend .dot-f[data-v-c4529f8c]{background:#f56c6c;border-radius:50%}.legend .heart[data-v-c4529f8c]{color:#f56c6c}.legend .lock[data-v-c4529f8c]{color:#e6a23c}.legend .aisle[data-v-c4529f8c]{background:#f5f5f5;border:1px dashed #dcdfe6}.preview-banner[data-v-c4529f8c]{background:#fdf6ec;border:1px solid #faecd8;color:#e6a23c;padding:8px 12px;border-radius:6px;margin-bottom:12px;display:flex;align-items:center;gap:12px}.layout-set .create-form[data-v-c4529f8c]{display:flex;flex-wrap:wrap;align-items:flex-end}.editor-grid[data-v-c4529f8c]{margin-top:6px;max-width:760px}.editor-cell[data-v-c4529f8c]{height:54px}.editor-cell.aisle[data-v-c4529f8c]{background:#f5f5f5;border-style:dashed;color:#bbb;cursor:pointer}.editor-cell.group-cell[data-v-c4529f8c]{cursor:pointer;border-style:solid}.group-tag[data-v-c4529f8c]{font-size:12px;font-weight:600;color:#555}.group-brush[data-v-c4529f8c]{margin-bottom:10px;display:flex;align-items:center;gap:10px}.intelligent .arrange-form[data-v-c4529f8c]{display:flex;flex-wrap:wrap;align-items:flex-end}.rotate .rotate-btns[data-v-c4529f8c]{display:flex;gap:12px;flex-wrap:wrap}.mini-form[data-v-c4529f8c]{display:flex;flex-wrap:wrap;align-items:flex-end;margin-bottom:12px}.dialog-info[data-v-c4529f8c]{font-size:14px;color:var(--text);line-height:1.8}.lock-reason[data-v-c4529f8c]{color:#e6a23c;font-size:13px}.history[data-v-c4529f8c]{overflow-x:auto}.drag-ghost[data-v-c4529f8c]{position:fixed;z-index:3000;pointer-events:none;min-width:80px;padding:8px 12px;background:var(--surface);border:2px solid var(--brand);border-radius:8px;box-shadow:0 6px 16px #00000026;display:flex;flex-direction:column;align-items:center;justify-content:center}.ghost-name[data-v-c4529f8c]{font-weight:600;font-size:14px;color:var(--text-strong)}.ghost-no[data-v-c4529f8c]{font-size:12px;color:var(--text-muted)}.export-area[data-v-c4529f8c]{padding:8px}.export-title[data-v-c4529f8c]{font-size:20px;font-weight:700;text-align:center;margin-bottom:6px}.export-sub[data-v-c4529f8c]{font-size:13px;color:var(--text);text-align:center;margin-bottom:14px}.export-podium[data-v-c4529f8c]{height:32px;line-height:32px;text-align:center;background:#f4f4f5;border:1px solid #dcdfe6;border-radius:6px;margin-bottom:10px;letter-spacing:10px;color:#909399}.export-grid[data-v-c4529f8c]{display:grid;gap:8px}.export-cell[data-v-c4529f8c]{min-height:58px;border:1px solid #dcdfe6;border-radius:6px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:6px;position:relative}.export-cell.aisle[data-v-c4529f8c]{background:#f5f5f5;border-style:dashed;color:#bbb}.export-cell.occupied[data-v-c4529f8c]{background:#f0f9eb;border-color:#67c23a}.export-cell.locked[data-v-c4529f8c]{border-color:#e6a23c}.export-name[data-v-c4529f8c]{font-weight:600;font-size:14px}.export-no[data-v-c4529f8c]{font-size:12px;color:#666;margin-top:2px}.export-empty[data-v-c4529f8c],.export-aisle[data-v-c4529f8c]{color:#bbb;font-size:13px}.namecard-area[data-v-c4529f8c]{padding:8px}.namecard-title[data-v-c4529f8c]{font-size:20px;font-weight:700;text-align:center;margin-bottom:16px}.namecard-grid[data-v-c4529f8c]{display:grid;grid-template-columns:repeat(6,1fr);gap:12px}.namecard[data-v-c4529f8c]{border:2px solid #409eff;border-radius:8px;height:90px;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:20px;font-weight:700}.nc-no[data-v-c4529f8c]{font-size:12px;color:#888;margin-top:4px;font-weight:400}.timetable-page[data-v-36191c2b]{padding:4px 2px}.tt-header[data-v-36191c2b]{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px;margin-bottom:14px}.tt-header-left[data-v-36191c2b],.tt-header-right[data-v-36191c2b]{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.tt-toolbar[data-v-36191c2b]{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:12px}.tt-toolbar .hint[data-v-36191c2b]{color:#909399;font-size:12px;margin-left:6px}.tt-grid-wrap[data-v-36191c2b]{overflow-x:auto}.tt-grid[data-v-36191c2b]{width:100%;border-collapse:collapse;table-layout:fixed}.tt-grid th[data-v-36191c2b],.tt-grid td[data-v-36191c2b]{border:1px solid #e4e7ed;padding:6px 4px;text-align:center}.tt-grid th[data-v-36191c2b]{background:#f5f7fa;color:#606266;font-weight:600;padding:10px 4px}.tt-th-period[data-v-36191c2b]{width:110px}.tt-period-cell[data-v-36191c2b]{background:#fafafa}.tt-period-name[data-v-36191c2b]{font-weight:600;color:#303133}.tt-period-time[data-v-36191c2b]{color:#909399;font-size:11px;margin-top:2px}.tt-course-cell[data-v-36191c2b]{height:58px;cursor:pointer;position:relative;transition:background .15s}.tt-course-cell[data-v-36191c2b]:hover{background:#f0f7ff}.tt-course-cell.is-fixed[data-v-36191c2b]{background:#f9fafb;cursor:default}.tt-course-name[data-v-36191c2b]{font-weight:600;font-size:14px}.tt-course-meta[data-v-36191c2b]{color:#909399;font-size:11px;margin-top:3px}.tt-week-badge[data-v-36191c2b]{position:absolute;top:2px;right:4px;font-size:10px;color:#fff;background:#ff9c6e;border-radius:3px;padding:0 3px}.tt-fixed[data-v-36191c2b]{color:#909399;font-size:13px}.tt-empty[data-v-36191c2b]{color:#dcdfe6;font-size:16px}.tt-stats[data-v-36191c2b]{margin-top:14px;display:flex;gap:8px;flex-wrap:wrap}.hint[data-v-36191c2b]{color:#909399;font-size:12px}.points-bank[data-v-502fe2dd]{padding:4px 2px 24px}.page-head[data-v-502fe2dd]{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:16px}.head-left[data-v-502fe2dd]{display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-width:0}.head-title[data-v-502fe2dd]{font-size:22px;font-weight:700;letter-spacing:-.02em}.head-right[data-v-502fe2dd]{display:flex;align-items:center;gap:10px}.seg[data-v-502fe2dd]{--el-color-primary: #6366f1}.stat-grid[data-v-502fe2dd]{display:grid;grid-template-columns:repeat(auto-fit,minmax(165px,1fr));gap:16px;margin-bottom:16px}.overview-row[data-v-502fe2dd]{display:grid;grid-template-columns:1.25fr 1fr 1.15fr;gap:16px;margin-bottom:16px;align-items:start}.ov-card[data-v-502fe2dd]{margin-bottom:0}.dist-list[data-v-502fe2dd]{display:flex;flex-direction:column;gap:14px;padding:6px 2px}.dist-meta[data-v-502fe2dd]{display:flex;justify-content:space-between;font-size:13px;color:var(--text-muted);margin-bottom:6px}.dist-meta b[data-v-502fe2dd]{color:var(--text-strong)}.dist-bar[data-v-502fe2dd]{height:10px;border-radius:999px;background:var(--surface-3);overflow:hidden}.dist-bar i[data-v-502fe2dd]{display:block;height:100%;border-radius:999px;transition:width .8s var(--ease-out)}.week-top[data-v-502fe2dd]{display:flex;align-items:center;gap:14px;padding:8px 2px 14px}.wt-medal[data-v-502fe2dd]{font-size:42px;filter:drop-shadow(0 6px 14px rgba(251,191,36,.35))}.wt-name[data-v-502fe2dd]{font-size:18px;font-weight:700}.wt-sub[data-v-502fe2dd]{font-size:13px;color:var(--text-muted);margin-top:2px}.wt-btn[data-v-502fe2dd]{width:100%}.award-form[data-v-502fe2dd]{max-width:720px}.student-pick[data-v-502fe2dd],.pick-select[data-v-502fe2dd]{width:100%}.pick-quick[data-v-502fe2dd]{display:flex;align-items:center;gap:8px;margin-top:8px}.pick-count[data-v-502fe2dd]{font-size:12px;color:var(--text-muted);margin-left:auto}.rule-chips[data-v-502fe2dd]{display:flex;flex-wrap:wrap;gap:8px}.rule-chip[data-v-502fe2dd]{border:1px solid var(--border);background:var(--surface-2);color:var(--text);border-radius:999px;padding:6px 12px;font-size:13px;cursor:pointer;transition:all .2s var(--ease-out)}.rule-chip em[data-v-502fe2dd]{font-style:normal;color:var(--brand);font-weight:700;margin-left:4px}.rule-chip[data-v-502fe2dd]:hover{border-color:var(--brand)}.rule-chip.active[data-v-502fe2dd]{background:var(--brand-grad);color:#fff;border-color:transparent}.rule-chip.active em[data-v-502fe2dd]{color:#fff}.num[data-v-502fe2dd]{width:160px}.award-preview[data-v-502fe2dd]{font-size:14px;color:var(--text-muted);margin-bottom:14px}.award-btn[data-v-502fe2dd]{--el-color-primary: #6366f1}.group-switch[data-v-502fe2dd]{margin-bottom:14px;font-size:13px;color:var(--text-muted);display:flex;align-items:center;gap:8px}.rank-list[data-v-502fe2dd]{display:flex;flex-direction:column;gap:10px}.rank-item[data-v-502fe2dd]{display:grid;grid-template-columns:44px 120px 1fr 90px;align-items:center;gap:12px;padding:10px 12px;border-radius:14px;background:var(--surface-2);transition:transform .2s var(--ease-out)}.rank-item[data-v-502fe2dd]:hover{transform:translate(3px)}.rank-no[data-v-502fe2dd]{font-size:18px;font-weight:800;text-align:center}.rank-name[data-v-502fe2dd]{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rank-bar[data-v-502fe2dd]{height:8px;border-radius:999px;background:var(--surface-3);overflow:hidden}.rank-bar i[data-v-502fe2dd]{display:block;height:100%;border-radius:999px;background:var(--brand-grad);transition:width .8s var(--ease-out)}.rank-score[data-v-502fe2dd]{text-align:right;font-weight:700;font-size:16px}.rank-score small[data-v-502fe2dd]{font-size:11px;color:var(--text-muted);font-weight:400}.top-1[data-v-502fe2dd]{background:linear-gradient(135deg,rgba(251,191,36,.16),var(--surface-2))}.top-2[data-v-502fe2dd]{background:linear-gradient(135deg,rgba(148,163,184,.16),var(--surface-2))}.top-3[data-v-502fe2dd]{background:linear-gradient(135deg,rgba(205,127,50,.16),var(--surface-2))}.wh-extra[data-v-502fe2dd]{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.warehouse[data-v-502fe2dd]{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px}.wh-card[data-v-502fe2dd]{border:1px solid var(--border);border-radius:16px;padding:16px;text-align:center;background:var(--surface-2);transition:all .25s var(--ease-out)}.wh-card[data-v-502fe2dd]:hover{transform:translateY(-3px);box-shadow:var(--shadow-md)}.wh-card.off[data-v-502fe2dd]{opacity:.55}.wh-icon[data-v-502fe2dd]{font-size:34px}.wh-name[data-v-502fe2dd]{font-weight:700;margin:6px 0 2px}.wh-cost[data-v-502fe2dd]{font-size:14px}.wh-stock[data-v-502fe2dd]{font-size:12px;color:var(--text-muted);margin:4px 0 10px}.wh-actions[data-v-502fe2dd]{display:flex;justify-content:center;gap:4px}.exchange-form[data-v-502fe2dd]{margin-top:4px}.up[data-v-502fe2dd]{color:#34d399;font-weight:700}.down[data-v-502fe2dd]{color:#f87171;font-weight:700}.tag-ex[data-v-502fe2dd]{font-size:10px;color:var(--brand);border:1px solid var(--brand);border-radius:6px;padding:0 4px;margin-left:4px}.src-tag[data-v-502fe2dd]{font-size:12px;color:var(--text-muted);background:var(--fill-soft, rgba(148,163,184,.12));border-radius:6px;padding:1px 7px}.revoked-tag[data-v-502fe2dd]{font-size:12px;color:var(--text-faint)}.log-filter[data-v-502fe2dd]{display:flex;gap:8px;flex-wrap:wrap}.log-pager[data-v-502fe2dd]{display:flex;justify-content:flex-end;margin-top:12px}.hint[data-v-502fe2dd]{font-size:12px;color:var(--text-muted)}.badge-wall[data-v-502fe2dd]{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;max-height:360px;overflow-y:auto;padding-right:4px}.bw-card[data-v-502fe2dd]{position:relative;border:1px solid var(--border);border-radius:18px;padding:18px 14px 14px;text-align:center;background:var(--surface-2);transition:all .25s var(--ease-out);cursor:pointer}.bw-card[data-v-502fe2dd]:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);border-color:var(--brand)}.bw-card.rich[data-v-502fe2dd]{background:linear-gradient(160deg,rgba(99,102,241,.1),var(--surface-2))}.bw-count[data-v-502fe2dd]{position:absolute;top:10px;right:12px;font-size:12px;font-weight:700;color:var(--brand)}.bw-avatar[data-v-502fe2dd]{width:52px;height:52px;border-radius:50%;margin:0 auto 8px;display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:800;color:#fff;background:var(--brand-grad)}.bw-name[data-v-502fe2dd]{font-weight:700;font-size:15px}.bw-no[data-v-502fe2dd]{font-size:12px;color:var(--text-muted);margin-bottom:8px}.bw-badges[data-v-502fe2dd]{display:flex;flex-wrap:wrap;gap:4px;justify-content:center;min-height:26px;margin-bottom:8px}.bw-icon[data-v-502fe2dd]{font-size:22px;line-height:1}.bw-none[data-v-502fe2dd]{font-size:12px;color:var(--text-faint)}.bw-pts[data-v-502fe2dd]{font-size:12px;color:var(--text-muted);font-weight:600}.lib-toolbar[data-v-502fe2dd]{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:12px}.lib-icon[data-v-502fe2dd]{font-size:20px;margin-right:6px}.lib-name[data-v-502fe2dd]{font-weight:600}.lib-global[data-v-502fe2dd]{margin-left:6px}.level-pill[data-v-502fe2dd]{display:inline-block;padding:1px 10px;border-radius:999px;font-size:12px;font-weight:700;border:1px solid transparent}.profile-top[data-v-502fe2dd]{display:flex;align-items:center;gap:14px;padding-bottom:14px;border-bottom:1px solid var(--border);margin-bottom:14px}.profile-avatar[data-v-502fe2dd]{width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:800;color:#fff;background:var(--brand-grad)}.profile-name[data-v-502fe2dd]{font-size:17px;font-weight:700}.profile-no[data-v-502fe2dd]{font-size:12px;color:var(--text-muted)}.profile-count[data-v-502fe2dd]{margin-left:auto;text-align:right;font-size:13px}.profile-count b[data-v-502fe2dd]{font-size:22px}.profile-list[data-v-502fe2dd]{display:flex;flex-direction:column;gap:10px}.pb-item[data-v-502fe2dd]{display:flex;gap:12px;padding:12px;border-radius:14px;background:var(--surface-2);border:1px solid var(--border);transition:all .2s var(--ease-out)}.pb-item.owned[data-v-502fe2dd]{border-color:color-mix(in srgb,var(--brand) 40%,var(--border));background:linear-gradient(160deg,rgba(99,102,241,.08),var(--surface-2))}.pb-icon[data-v-502fe2dd]{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:22px;flex-shrink:0;background:var(--surface-3)}.pb-main[data-v-502fe2dd]{flex:1;min-width:0}.pb-name[data-v-502fe2dd]{display:flex;align-items:center;gap:6px;font-weight:700}.pb-tag[data-v-502fe2dd]{font-weight:600}.pb-revoke[data-v-502fe2dd]{margin-left:auto}.pb-desc[data-v-502fe2dd]{font-size:13px;color:var(--text-muted);margin:2px 0 6px}.pb-bar[data-v-502fe2dd]{height:8px;border-radius:999px;background:var(--surface-3);overflow:hidden}.pb-bar i[data-v-502fe2dd]{display:block;height:100%;border-radius:999px;background:var(--brand-grad);transition:width .8s var(--ease-out)}.pb-prog[data-v-502fe2dd]{font-size:12px;color:var(--text-muted);margin-top:4px}.pf-picker[data-v-502fe2dd]{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:18px}.pf-stats[data-v-502fe2dd]{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;margin-bottom:18px}.pf-stat[data-v-502fe2dd]{background:var(--surface-2);border:1px solid var(--border);border-radius:14px;padding:14px 10px;text-align:center}.pf-stat.hl[data-v-502fe2dd]{background:var(--brand-soft, rgba(99,102,241,.08));border-color:var(--brand-soft-bd, rgba(99,102,241,.3))}.pf-num[data-v-502fe2dd]{font-size:24px;font-weight:800;letter-spacing:-.02em;line-height:1.1}.pf-lbl[data-v-502fe2dd]{font-size:12px;color:var(--text-muted);margin-top:4px}.pf-chart[data-v-502fe2dd]{width:100%;height:280px}.pos[data-v-502fe2dd]{color:#16a34a;font-weight:700}.neg[data-v-502fe2dd]{color:#dc2626;font-weight:700}@media (max-width: 900px){.stat-grid[data-v-502fe2dd]{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.overview-row[data-v-502fe2dd]{grid-template-columns:1fr}.rank-item[data-v-502fe2dd]{grid-template-columns:36px 90px 1fr 70px}.badge-wall[data-v-502fe2dd]{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}.pf-stats[data-v-502fe2dd]{grid-template-columns:repeat(3,1fr)}}.students-page[data-v-685cc49c]{padding:8px}.class-tabs[data-v-685cc49c]{background:var(--surface);border-radius:8px;padding:0 12px}.card-head[data-v-685cc49c]{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px}.head-title[data-v-685cc49c]{display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-width:0}.count-tag[data-v-685cc49c]{font-weight:500}.head-actions[data-v-685cc49c]{display:flex;gap:8px;flex-wrap:wrap}.special-mark[data-v-685cc49c]{display:inline-block;max-width:110px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#f59e0b}.import-actions[data-v-685cc49c]{margin:12px 0;display:flex;gap:12px}.qr-box[data-v-685cc49c]{text-align:center}.qr-img[data-v-685cc49c]{width:240px;height:240px}.qr-meta[data-v-685cc49c]{margin-top:8px;font-size:14px;color:var(--text)}.qr-token[data-v-685cc49c]{font-size:12px;color:var(--text-muted);margin-top:2px}@media (max-width: 768px){.card-head[data-v-685cc49c]{flex-direction:column;align-items:flex-start}}.class-manage[data-v-8afb084f]{padding:4px}.head-card[data-v-8afb084f]{margin-bottom:16px;border:none}.head-row[data-v-8afb084f]{display:flex;align-items:center;justify-content:space-between;gap:12px}.head-actions[data-v-8afb084f]{display:flex;gap:10px;flex-shrink:0}.page-title[data-v-8afb084f]{margin:0;font-size:20px;font-weight:700;color:var(--text-strong)}.page-sub[data-v-8afb084f]{margin:6px 0 0;font-size:13px;color:var(--text-muted)}.manage-loading[data-v-8afb084f]{min-height:320px}.card-grid[data-v-8afb084f]{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:16px}.class-card[data-v-8afb084f]{border-radius:12px;transition:box-shadow .2s,transform .2s}.class-card.is-current[data-v-8afb084f]{border:1px solid var(--el-color-success);box-shadow:0 0 0 1px var(--el-color-success-light-8)}.card-top[data-v-8afb084f]{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;flex-wrap:wrap}.card-name[data-v-8afb084f]{display:flex;align-items:center;gap:8px;font-size:16px;font-weight:600;color:var(--text-strong);flex:1;min-width:0}.card-name span[data-v-8afb084f]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.name-icon[data-v-8afb084f]{color:var(--brand);flex-shrink:0}.card-meta[data-v-8afb084f]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:14px 0 10px}.meta-item[data-v-8afb084f]{font-size:14px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.meta-label[data-v-8afb084f]{display:inline-block;min-width:56px;margin-right:6px;color:var(--text-muted);font-size:13px}.invite-row[data-v-8afb084f]{display:flex;align-items:center;gap:8px;padding:8px 0 14px;border-top:1px dashed #ebeef5;flex-wrap:wrap}.invite-code[data-v-8afb084f]{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;background:var(--surface-2);padding:2px 8px;border-radius:6px;color:var(--brand);letter-spacing:1px}.card-actions[data-v-8afb084f]{display:flex;flex-wrap:wrap;gap:8px}.teacher-list[data-v-8afb084f]{display:flex;flex-direction:column;gap:10px}.teacher-row[data-v-8afb084f]{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:var(--surface)}.teacher-row.is-head[data-v-8afb084f]{background:var(--el-color-danger-light-9);border-color:var(--el-color-danger-light-7)}.teacher-avatar[data-v-8afb084f]{width:40px;height:40px;flex-shrink:0;border-radius:50%;background:var(--brand-grad);color:var(--brand-ink);font-weight:600;font-size:16px;display:flex;align-items:center;justify-content:center}.teacher-row.is-head .teacher-avatar[data-v-8afb084f]{background:var(--el-color-danger)}.teacher-main[data-v-8afb084f]{flex:1;min-width:0}.teacher-top[data-v-8afb084f]{display:flex;align-items:center;gap:8px}.teacher-name[data-v-8afb084f]{font-weight:600;font-size:15px;color:var(--text-strong)}.teacher-phone[data-v-8afb084f]{display:flex;align-items:center;gap:4px;margin-top:4px;font-size:13px;color:var(--text)}.teacher-phone .el-icon[data-v-8afb084f]{color:var(--text-muted)}.group-manage[data-v-05a708ff]{padding:4px}.head-card[data-v-05a708ff]{margin-bottom:16px;border:none}.head-row[data-v-05a708ff]{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.head-right[data-v-05a708ff]{display:flex;align-items:center;gap:10px}.page-title[data-v-05a708ff]{margin:0;font-size:20px;font-weight:700;color:var(--text-strong)}.page-sub[data-v-05a708ff]{margin:6px 0 0;font-size:13px;color:var(--text-muted)}.manage-loading[data-v-05a708ff]{min-height:360px}.group-body[data-v-05a708ff]{display:flex;gap:16px;align-items:flex-start}.scheme-list[data-v-05a708ff]{width:240px;flex-shrink:0;display:flex;flex-direction:column;gap:10px}.scheme-item[data-v-05a708ff]{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:12px 14px;cursor:pointer;transition:all .2s}.scheme-item[data-v-05a708ff]:hover{border-color:var(--border-strong)}.scheme-item.active[data-v-05a708ff]{border-color:var(--brand);background:var(--brand-soft)}.scheme-item-top[data-v-05a708ff]{display:flex;align-items:center;justify-content:space-between}.scheme-name[data-v-05a708ff]{font-weight:600;color:var(--text-strong)}.scheme-item-sub[data-v-05a708ff]{margin-top:6px;font-size:12px;color:var(--text-muted)}.scheme-detail[data-v-05a708ff]{flex:1;min-width:0}.detail-head[data-v-05a708ff]{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:16px;flex-wrap:wrap}.detail-title[data-v-05a708ff]{margin:0;font-size:18px;font-weight:700;color:var(--text-strong)}.detail-sub[data-v-05a708ff]{margin-top:8px;display:flex;align-items:center;gap:10px}.detail-year[data-v-05a708ff]{font-size:13px;color:var(--text-muted)}.detail-actions[data-v-05a708ff]{display:flex;gap:8px}.detail-loading[data-v-05a708ff]{min-height:200px}.group-grid[data-v-05a708ff]{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.group-card[data-v-05a708ff]{border-radius:12px}.group-card-head[data-v-05a708ff]{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}.group-name[data-v-05a708ff]{display:flex;align-items:center;gap:8px;font-weight:600;color:var(--text-strong)}.group-no[data-v-05a708ff]{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;background:var(--brand-grad);color:var(--brand-ink);font-size:12px;font-weight:700}.group-card-ops[data-v-05a708ff]{display:flex;align-items:center;gap:2px}.member-list[data-v-05a708ff]{display:flex;flex-direction:column;gap:6px}.member-item[data-v-05a708ff]{display:flex;align-items:center;justify-content:space-between;background:var(--surface-2);border-radius:8px;padding:6px 10px}.member-name[data-v-05a708ff]{font-size:14px;color:var(--text)}.member-no[data-v-05a708ff]{font-size:12px;color:var(--text-muted);margin-left:8px}.member-empty[data-v-05a708ff]{font-size:13px;color:var(--text-faint);text-align:center;padding:12px 0}.candidate-box[data-v-05a708ff]{max-height:320px;overflow-y:auto}.candidate-item[data-v-05a708ff]{padding:6px 4px;border-bottom:1px solid var(--border)}.candidate-name[data-v-05a708ff]{font-size:14px;color:var(--text)}.candidate-no[data-v-05a708ff]{font-size:12px;color:var(--text-muted);margin-left:8px}.notice-manage[data-v-7ad03548]{padding:4px}.head-card[data-v-7ad03548]{margin-bottom:16px;border:none}.head-row[data-v-7ad03548]{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.head-right[data-v-7ad03548]{display:flex;align-items:center;gap:10px}.page-title[data-v-7ad03548]{margin:0;font-size:20px;font-weight:700;color:var(--text-strong)}.page-sub[data-v-7ad03548]{margin:6px 0 0;font-size:13px;color:var(--text-muted)}.manage-loading[data-v-7ad03548]{min-height:360px}.notice-list[data-v-7ad03548]{display:flex;flex-direction:column;gap:12px}.notice-card[data-v-7ad03548]{border-radius:12px;transition:opacity .2s}.notice-card.recalled[data-v-7ad03548]{opacity:.6}.notice-head[data-v-7ad03548]{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.notice-title-row[data-v-7ad03548]{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.notice-title[data-v-7ad03548]{font-size:16px;font-weight:600;color:var(--text-strong)}.notice-time[data-v-7ad03548]{font-size:12px;color:var(--text-muted);white-space:nowrap}.notice-content[data-v-7ad03548]{margin:10px 0;padding:10px 12px;background:var(--surface-2);border-radius:8px;font-size:14px;color:var(--text);white-space:pre-wrap;line-height:1.6}.notice-actions[data-v-7ad03548]{display:flex;justify-content:flex-end}.card-head[data-v-7066e783]{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.head-actions[data-v-7066e783]{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.card-title[data-v-5533750c]{font-weight:700;font-size:15px;color:var(--text-strong)}.card-head[data-v-5533750c]{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.tip[data-v-5533750c]{font-size:12px;color:var(--text-muted)}.rule-tip[data-v-5533750c]{font-size:12px;color:var(--text-muted);background:var(--surface-2);padding:8px 12px;border-radius:10px;margin-bottom:12px}.seq-badge[data-v-5533750c]{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:24px;padding:0 6px;border-radius:8px;font-weight:700;background:var(--surface-2);color:var(--text)}.gap-severe[data-v-5533750c]{color:#dc2626;font-weight:700}.gap-bias[data-v-5533750c]{color:#d97706;font-weight:600}.gap-weak[data-v-5533750c]{color:#ca8a04}.bias-tag.tag-severe[data-v-5533750c]{color:#dc2626;background:#fef2f2;border-color:#fecaca}.bias-tag.tag-bias[data-v-5533750c]{color:#d97706;background:#fffbeb;border-color:#fde68a}.bias-tag.tag-weak[data-v-5533750c]{color:#ca8a04;background:#fefce8;border-color:#fef08a}.stat-row-2[data-v-5533750c]{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:12px}.stat-label[data-v-5533750c]{font-size:13px;color:var(--text);font-weight:600}.subj-count[data-v-5533750c]{color:var(--brand);background:var(--brand-soft, #eef2ff);border-color:var(--brand-soft, #eef2ff)}.sug-list[data-v-5533750c]{margin:12px 0 0;padding-left:18px;display:flex;flex-direction:column;gap:6px;color:var(--text);line-height:1.6;font-size:13px}.card-title[data-v-3e42c60f]{font-weight:700;font-size:15px;color:var(--text-strong)}.card-head[data-v-3e42c60f]{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.tip[data-v-3e42c60f]{font-size:12px;color:var(--text-muted)}.sub-title[data-v-3e42c60f]{font-size:14px;font-weight:700;color:var(--text-strong);margin:4px 0 10px}.medal[data-v-3e42c60f]{font-size:16px}.medal-1[data-v-3e42c60f]{filter:drop-shadow(0 1px 2px rgba(0,0,0,.2))}.up[data-v-3e42c60f]{color:#16a34a;font-weight:700}.down[data-v-3e42c60f]{color:#dc2626;font-weight:700}.rank-delta[data-v-3e42c60f]{font-size:11px;color:var(--text-muted)}.sug-list[data-v-3e42c60f]{margin:12px 0 0;padding-left:18px;display:flex;flex-direction:column;gap:6px;color:var(--text);line-height:1.6;font-size:13px}.card-title[data-v-7c2ad06e]{font-weight:700;font-size:15px;color:var(--text-strong)}.card-head[data-v-7c2ad06e]{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.tip[data-v-7c2ad06e]{font-size:12px;color:var(--text-muted)}.seq-badge[data-v-7c2ad06e]{display:inline-flex;align-items:center;justify-content:center;min-width:26px;height:26px;padding:0 6px;border-radius:8px;font-weight:700;color:#fff}.seq-red[data-v-7c2ad06e]{background:#dc2626}.seq-yellow[data-v-7c2ad06e]{background:#d97706}.lv-tag.lv-red[data-v-7c2ad06e]{color:#dc2626;background:#fef2f2;border-color:#fecaca}.lv-tag.lv-yellow[data-v-7c2ad06e]{color:#d97706;background:#fffbeb;border-color:#fde68a}.card-title[data-v-dd3e6ad6]{font-weight:700;font-size:15px;color:var(--text-strong)}.report-card[data-v-dd3e6ad6]{margin-bottom:16px}.report-grid[data-v-dd3e6ad6]{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:12px}.report-item[data-v-dd3e6ad6]{background:var(--surface-2);border-radius:12px;padding:12px 14px}.ri-label[data-v-dd3e6ad6]{font-size:13px;color:var(--text-muted);margin-bottom:6px;font-weight:600}.ri-value[data-v-dd3e6ad6]{font-size:14px;color:var(--text-strong);line-height:1.5}.ri-value.good[data-v-dd3e6ad6]{color:#16a34a}.ri-value.bad[data-v-dd3e6ad6]{color:#dc2626}.core-adv[data-v-dd3e6ad6]{background:linear-gradient(120deg,var(--surface),var(--surface-2));border-radius:12px;padding:12px 14px;margin-bottom:12px}.core-adv ul[data-v-dd3e6ad6]{margin:8px 0 0;padding-left:18px;display:flex;flex-direction:column;gap:6px;color:var(--text);line-height:1.6;font-size:13px}@media (max-width: 700px){.report-grid[data-v-dd3e6ad6]{grid-template-columns:1fr}}.card-title[data-v-7c042184]{font-weight:700;font-size:15px;color:var(--text-strong)}.card-head[data-v-7c042184]{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.tip[data-v-7c042184]{font-size:12px;color:var(--text-muted)}.view-switch[data-v-7c042184]{margin-bottom:12px}.q-tag.q-weak[data-v-7c042184]{color:#dc2626;background:#fef2f2;border-color:#fecaca}.q-tag.q-warn[data-v-7c042184]{color:#d97706;background:#fffbeb;border-color:#fde68a}.q-tag.q-normal[data-v-7c042184]{color:#16a34a;background:#f0fdf4;border-color:#bbf7d0}.diag[data-v-7c042184]{margin-top:12px;font-size:13px;color:var(--text);background:var(--surface-2);padding:10px 12px;border-radius:10px;line-height:1.6}.card-title[data-v-82d53c99]{font-weight:700;font-size:15px;color:var(--text-strong)}.card-head[data-v-82d53c99]{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.tip[data-v-82d53c99]{font-size:12px;color:var(--text-muted)}.k-tag.k-weak[data-v-82d53c99]{color:#dc2626;background:#fef2f2;border-color:#fecaca}.k-tag.k-warn[data-v-82d53c99]{color:#d97706;background:#fffbeb;border-color:#fde68a}.k-tag.k-good[data-v-82d53c99]{color:#16a34a;background:#f0fdf4;border-color:#bbf7d0}.sug-list[data-v-82d53c99]{margin:12px 0 0;padding-left:18px;display:flex;flex-direction:column;gap:6px;color:var(--text);line-height:1.6;font-size:13px}.card-title[data-v-b3ae9b14]{font-weight:700;font-size:15px;color:var(--text-strong)}.card-head[data-v-b3ae9b14]{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.tip[data-v-b3ae9b14]{font-size:12px;color:var(--text-muted)}.sub-title[data-v-b3ae9b14]{font-size:14px;font-weight:700;color:var(--text-strong);margin:4px 0 10px}.common-bar[data-v-b3ae9b14]{display:flex;align-items:center;gap:8px;margin-bottom:10px;font-size:13px}.cp-name[data-v-b3ae9b14]{width:90px;color:var(--text);flex-shrink:0}.bar-track[data-v-b3ae9b14]{flex:1;height:14px;background:var(--surface-2);border-radius:7px;overflow:hidden}.bar-fill[data-v-b3ae9b14]{height:100%;background:linear-gradient(90deg,#f59e0b,#dc2626);border-radius:7px}.cp-ratio[data-v-b3ae9b14]{width:44px;text-align:right;font-weight:700;color:#dc2626}.cp-num[data-v-b3ae9b14]{width:64px;text-align:right;color:var(--text-muted);font-size:12px}.sug-list[data-v-b3ae9b14]{margin:12px 0 0;padding-left:18px;display:flex;flex-direction:column;gap:6px;color:var(--text);line-height:1.6;font-size:13px}.card-title[data-v-a5635274]{font-weight:700;font-size:15px;color:var(--text-strong)}.card-head[data-v-a5635274]{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.insight-card[data-v-a5635274]{margin-bottom:16px;border-color:var(--brand-soft, transparent);background:linear-gradient(120deg,var(--surface),var(--surface-2))}.insight-list[data-v-a5635274]{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:8px;color:var(--text);line-height:1.6}.insight-list li[data-v-a5635274]::marker{color:var(--brand)}.stat-row[data-v-a5635274]{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:16px}.stat-item[data-v-a5635274]{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:16px 18px;box-shadow:var(--header-shadow)}.stat-label[data-v-a5635274]{font-size:13px;color:var(--text-muted)}.stat-value[data-v-a5635274]{font-size:28px;font-weight:800;color:var(--text-strong);margin:6px 0 2px}.stat-unit[data-v-a5635274]{font-size:14px;font-weight:500;color:var(--text-muted);margin-left:3px}.stat-sub[data-v-a5635274]{font-size:12px;color:var(--text-muted)}.chart-row[data-v-a5635274]{margin-bottom:16px}.chart[data-v-a5635274]{height:300px}.chart-lg[data-v-a5635274]{height:320px}.chart-heat[data-v-a5635274]{height:460px}.rank-card .tip[data-v-a5635274]{font-size:12px;color:var(--text-muted)}.rank-badge[data-v-a5635274]{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:8px;font-weight:700;background:var(--surface-2);color:var(--text)}.rank-top[data-v-a5635274]{background:var(--brand-grad);color:#fff;box-shadow:0 6px 14px -6px var(--brand-glow)}.absent-cell[data-v-a5635274]{color:var(--el-color-warning, #f59e0b);opacity:.7}.analysis-tabs[data-v-a5635274]{margin-top:4px}.subj-bar[data-v-a5635274]{display:flex;align-items:center;gap:10px;margin-bottom:16px;flex-wrap:wrap}.subj-label[data-v-a5635274]{font-size:14px;color:var(--text);font-weight:600}.subj-exam[data-v-a5635274]{font-size:12px;color:var(--text-muted)}@keyframes fadeIn-a5635274{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.analysis-tabs[data-v-a5635274] .el-tab-pane{animation:fadeIn-a5635274 .25s ease}.level-tag.lv-a-plus[data-v-a5635274]{color:#047857;background:#ecfdf5;border-color:#a7f3d0}.level-tag.lv-a[data-v-a5635274]{color:#059669;background:#ecfdf5;border-color:#a7f3d0}.level-tag.lv-b-plus[data-v-a5635274]{color:#2563eb;background:#eff6ff;border-color:#bfdbfe}.level-tag.lv-b[data-v-a5635274]{color:#0891b2;background:#ecfeff;border-color:#a5f3fc}.level-tag.lv-c-plus[data-v-a5635274]{color:#d97706;background:#fffbeb;border-color:#fde68a}.level-tag.lv-c[data-v-a5635274]{color:#dc2626;background:#fef2f2;border-color:#fecaca}.bal-tag.bal-balanced[data-v-a5635274]{color:#16a34a;background:#f0fdf4;border-color:#bbf7d0}.bal-tag.bal-bias[data-v-a5635274]{color:#d97706;background:#fffbeb;border-color:#fde68a}.bal-tag.bal-weak[data-v-a5635274]{color:#dc2626;background:#fef2f2;border-color:#fecaca}@media (max-width: 900px){.stat-row[data-v-a5635274]{grid-template-columns:repeat(2,1fr)}}.card-title[data-v-e74e4769]{font-weight:700;font-size:15px;color:var(--text-strong)}.card-head[data-v-e74e4769]{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.head-card[data-v-e74e4769]{margin-bottom:16px}.head[data-v-e74e4769]{display:flex;align-items:center;gap:14px}.head-avatar[data-v-e74e4769]{background:var(--brand-grad)!important;color:#fff;font-weight:700;font-size:20px;box-shadow:0 6px 14px -6px var(--brand-glow)}.head-name[data-v-e74e4769]{font-size:18px;font-weight:800;color:var(--text-strong);display:flex;align-items:center;gap:8px}.head-sub[data-v-e74e4769]{font-size:13px;color:var(--text-muted);margin-top:2px}.insight-card[data-v-e74e4769]{margin-bottom:16px;background:linear-gradient(120deg,var(--surface),var(--surface-2))}.insight-list[data-v-e74e4769]{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:8px;color:var(--text);line-height:1.6}.chart-row[data-v-e74e4769]{margin-bottom:16px}.chart[data-v-e74e4769]{height:320px}.chart-lg[data-v-e74e4769]{height:340px}.muted[data-v-e74e4769]{color:var(--text-muted);font-size:12px}.sum-card[data-v-e74e4769]{margin-bottom:16px}.tip[data-v-e74e4769]{font-size:12px;color:var(--text-muted)}.weak-list[data-v-e74e4769]{padding:8px 4px}.weak-title[data-v-e74e4769]{font-size:13px;color:var(--text-muted);margin-bottom:10px}.weak-tag[data-v-e74e4769]{margin:0 8px 8px 0}.trend-hint[data-v-e74e4769]{margin-top:10px}.empty-title[data-v-e74e4769]{font-size:15px;font-weight:700;color:var(--text-strong);margin-bottom:6px}.empty-tip[data-v-e74e4769]{font-size:12px;line-height:1.7;max-width:420px}.stat-row[data-v-4cc430a2]{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:16px}.stat-item[data-v-4cc430a2]{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:14px 18px;cursor:pointer;transition:all .2s var(--ease-out)}.stat-item[data-v-4cc430a2]:hover{transform:translateY(-2px);box-shadow:var(--header-shadow)}.stat-item.active[data-v-4cc430a2]{border-color:var(--brand);background:var(--brand-grad-soft, var(--surface-2))}.stat-item.danger .stat-value[data-v-4cc430a2]{color:#ef4444}.stat-item.success .stat-value[data-v-4cc430a2]{color:#10b981}.stat-label[data-v-4cc430a2]{font-size:13px;color:var(--text-muted)}.stat-value[data-v-4cc430a2]{font-size:26px;font-weight:800;color:var(--text-strong);margin-top:4px}.stat-sub[data-v-4cc430a2]{font-size:12px;color:var(--text-muted)}.filter-card[data-v-4cc430a2]{margin-bottom:16px}.pager[data-v-4cc430a2]{margin-top:14px;display:flex;justify-content:flex-end}.suggestion[data-v-4cc430a2]{font-size:13px;line-height:1.7;color:var(--text);white-space:pre-wrap}.handled-tip[data-v-4cc430a2]{font-size:12px;color:var(--text-muted)}@media (max-width: 900px){.stat-row[data-v-4cc430a2]{grid-template-columns:repeat(2,1fr)}}.profile-page[data-v-bbb90a70]{max-width:960px;margin:0 auto}.profile-card[data-v-bbb90a70]{margin-bottom:16px}.profile-header[data-v-bbb90a70]{display:flex;align-items:center;gap:16px}.profile-avatar[data-v-bbb90a70]{background:var(--brand-grad);color:var(--brand-ink);font-weight:600;font-size:26px}.profile-meta[data-v-bbb90a70]{flex:1}.profile-name[data-v-bbb90a70]{font-size:20px;font-weight:600;display:flex;align-items:center;gap:8px}.profile-sub[data-v-bbb90a70]{margin-top:6px;color:var(--text-muted);font-size:13px}.profile-row[data-v-bbb90a70]{margin-top:4px}.tip[data-v-bbb90a70]{color:var(--text-muted);font-size:13px;margin:0 0 12px}.settings-page[data-v-9bfb2cf1]{max-width:960px;margin:0 auto}.block[data-v-9bfb2cf1]{margin-bottom:16px}.review-toolbar[data-v-9bfb2cf1]{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;flex-wrap:wrap}.review-left[data-v-9bfb2cf1]{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.review-count[data-v-9bfb2cf1]{color:var(--text-muted);font-size:12px}.feature-card[data-v-9bfb2cf1]{border:1px solid var(--border);border-radius:10px;padding:18px;text-align:center;height:100%;background:#fafbfc}.feature-icon[data-v-9bfb2cf1]{font-size:28px;color:var(--brand)}.feature-title[data-v-9bfb2cf1]{font-weight:600;margin:10px 0 6px}.feature-desc[data-v-9bfb2cf1]{color:var(--text-muted);font-size:13px;min-height:40px}.feature-card .el-button[data-v-9bfb2cf1]{margin-top:10px}.hint[data-v-9bfb2cf1]{color:var(--text-muted);font-size:12px;margin:12px 0 0}.moral-manage[data-v-5724a51f]{display:flex;flex-direction:column;gap:14px}.head-card .head-row[data-v-5724a51f]{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.head-right[data-v-5724a51f]{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.page-title[data-v-5724a51f]{margin:0;font-size:18px;font-weight:700;color:var(--text-strong)}.page-sub[data-v-5724a51f]{margin:4px 0 0;font-size:13px;color:var(--text-muted)}.table-card[data-v-5724a51f]{padding:4px}.moral-table[data-v-5724a51f]{width:100%}.moral-form[data-v-5724a51f]{padding-right:12px}.qr-grid[data-v-01edd6bc]{display:grid;grid-template-columns:1fr 1fr;gap:14px}.qr-card[data-v-01edd6bc]{min-height:300px}.pick-count[data-v-01edd6bc]{font-size:12px;color:var(--text-muted)}.pick-count b[data-v-01edd6bc]{color:var(--brand);font-size:14px}.pick-toolbar[data-v-01edd6bc]{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:12px}.stu-grid[data-v-01edd6bc]{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:8px;max-height:300px;overflow-y:auto;padding-right:4px}.stu-chip[data-v-01edd6bc]{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 4px;border-radius:12px;border:1px solid var(--border);background:var(--surface-2);cursor:pointer;transition:all .2s var(--ease-out)}.stu-chip[data-v-01edd6bc]:hover{border-color:var(--brand);transform:translateY(-2px)}.stu-chip.on[data-v-01edd6bc]{background:var(--brand-grad);border-color:transparent}.stu-chip.on .stu-name[data-v-01edd6bc],.stu-chip.on .stu-avatar[data-v-01edd6bc]{color:#fff}.stu-chip.on .stu-avatar[data-v-01edd6bc]{background:#ffffff38}.stu-avatar[data-v-01edd6bc]{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:600;background:var(--surface-3);color:var(--text)}.stu-name[data-v-01edd6bc]{font-size:12px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.cat-block[data-v-01edd6bc]{margin-bottom:12px}.cat-title[data-v-01edd6bc]{font-size:12px;color:var(--text-muted);margin-bottom:6px}.chip-wrap[data-v-01edd6bc]{display:flex;flex-wrap:wrap;gap:8px}.beh-chip[data-v-01edd6bc]{display:inline-flex;align-items:center;gap:5px;padding:6px 12px;border-radius:999px;border:1px solid var(--border);background:var(--surface-2);color:var(--text);font-size:13px;cursor:pointer;transition:all .2s var(--ease-out)}.beh-chip[data-v-01edd6bc]:hover{border-color:var(--brand);transform:translateY(-1px)}.beh-chip em[data-v-01edd6bc]{font-style:normal;font-weight:700;color:#34d399}.beh-chip.bad em[data-v-01edd6bc]{color:#f87171}.beh-chip.on[data-v-01edd6bc]{background:var(--brand-grad);border-color:transparent;color:#fff}.beh-chip.on em[data-v-01edd6bc]{color:#fff}.beh-icon[data-v-01edd6bc]{font-size:14px}.custom-row[data-v-01edd6bc]{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.hint[data-v-01edd6bc]{font-size:12px;color:var(--text-muted)}.submit-bar[data-v-01edd6bc]{margin-top:14px;position:sticky;bottom:8px;z-index:5}.sb-inner[data-v-01edd6bc]{display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:12px 14px}.sb-remark[data-v-01edd6bc]{flex:1;min-width:160px}.sb-preview[data-v-01edd6bc]{font-size:13px;color:var(--text-muted);padding:4px 12px;border-radius:999px;background:var(--surface-2)}.sb-preview.ok[data-v-01edd6bc]{color:#059669;background:#34d39924}.sb-preview.warn[data-v-01edd6bc]{color:#dc2626;background:#f8717124}.sb-preview small[data-v-01edd6bc]{opacity:.75}.import-list[data-v-01edd6bc]{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px;min-height:60px;max-height:240px;overflow-y:auto}.import-tag[data-v-01edd6bc]{margin:0}@media (max-width: 900px){.qr-grid[data-v-01edd6bc]{grid-template-columns:1fr}.sb-inner[data-v-01edd6bc]{flex-direction:column;align-items:stretch}}.filter-bar[data-v-e4ec605a]{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:12px}.kind-tag[data-v-e4ec605a]{font-size:12px;border-radius:6px;padding:1px 7px}.kind-tag.good[data-v-e4ec605a]{color:#059669;background:#34d39929}.kind-tag.bad[data-v-e4ec605a]{color:#dc2626;background:#f8717129}.p-add[data-v-e4ec605a]{color:#059669}.p-sub[data-v-e4ec605a]{color:#dc2626}.src-tag[data-v-e4ec605a]{font-size:12px;color:var(--text-muted);background:var(--fill-soft, rgba(148,163,184,.12));border-radius:6px;padding:1px 7px}.revoked-tag[data-v-e4ec605a]{font-size:12px;color:var(--text-faint);text-decoration:line-through}.pager[data-v-e4ec605a]{display:flex;justify-content:flex-end;margin-top:12px}.behavior-library[data-v-735a0084]{display:grid;grid-template-columns:1fr 1fr;gap:14px}.lib-count[data-v-735a0084]{font-size:12px;color:var(--text-muted)}.cat-block[data-v-735a0084]{margin-bottom:14px}.cat-title[data-v-735a0084]{font-size:12px;color:var(--text-muted);margin-bottom:6px}.tpl-grid[data-v-735a0084]{display:flex;flex-direction:column;gap:6px}.tpl-item[data-v-735a0084]{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:12px;background:var(--surface-2);border:1px solid var(--border);transition:all .2s var(--ease-out)}.tpl-item[data-v-735a0084]:hover{border-color:var(--brand)}.tpl-item.off[data-v-735a0084]{opacity:.5}.tpl-icon[data-v-735a0084]{font-size:18px;width:24px;text-align:center}.tpl-main[data-v-735a0084]{flex:1;min-width:0}.tpl-name[data-v-735a0084]{font-size:14px;color:var(--text-strong);display:flex;align-items:center;gap:6px}.preset-tag[data-v-735a0084]{font-style:normal;font-size:10px;color:var(--text-muted);border:1px solid var(--border);border-radius:5px;padding:0 4px}.tpl-sub[data-v-735a0084]{font-size:12px;color:var(--text-muted);margin-top:2px}.p-add[data-v-735a0084]{color:#059669}.p-sub[data-v-735a0084]{color:#dc2626}.use-count[data-v-735a0084]{margin-left:2px}.tpl-ops[data-v-735a0084]{display:flex;align-items:center;gap:4px}.hint[data-v-735a0084]{font-size:12px;color:var(--text-muted);margin-left:8px}@media (max-width: 900px){.behavior-library[data-v-735a0084]{grid-template-columns:1fr}}.legend[data-v-59f2f9e8]{display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin-bottom:14px;font-size:12px;color:var(--text-muted)}.legend-item[data-v-59f2f9e8]{display:inline-flex;align-items:center;gap:5px}.legend-item i[data-v-59f2f9e8]{width:10px;height:10px;border-radius:3px;display:inline-block}.legend-hint[data-v-59f2f9e8]{margin-left:auto}.alert-list[data-v-59f2f9e8]{display:flex;flex-direction:column;gap:10px;min-height:120px}.alert-card[data-v-59f2f9e8]{position:relative;display:flex;gap:12px;padding:14px 16px 14px 20px;border-radius:16px;background:var(--surface-2);border:1px solid var(--border);transition:all .25s var(--ease-out)}.alert-card[data-v-59f2f9e8]:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.alert-card.handled[data-v-59f2f9e8]{opacity:.58}.ac-bar[data-v-59f2f9e8]{position:absolute;left:0;top:10px;bottom:10px;width:4px;border-radius:0 4px 4px 0}.lv-high .ac-bar[data-v-59f2f9e8]{background:#f87171}.lv-medium .ac-bar[data-v-59f2f9e8]{background:#fbbf24}.lv-low .ac-bar[data-v-59f2f9e8]{background:#94a3b8}.lv-high[data-v-59f2f9e8]{background:linear-gradient(120deg,rgba(248,113,113,.1),var(--surface-2))}.lv-medium[data-v-59f2f9e8]{background:linear-gradient(120deg,rgba(251,191,36,.1),var(--surface-2))}.ac-main[data-v-59f2f9e8]{flex:1;min-width:0}.ac-head[data-v-59f2f9e8]{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.ac-name[data-v-59f2f9e8]{font-size:15px;font-weight:700;color:var(--text-strong)}.ac-type[data-v-59f2f9e8]{font-size:13px;color:var(--brand)}.ac-level[data-v-59f2f9e8]{font-size:11px;padding:1px 7px;border-radius:6px;background:var(--surface-3);color:var(--text-muted)}.lv-high .ac-level[data-v-59f2f9e8]{background:#f871712e;color:#dc2626}.lv-medium .ac-level[data-v-59f2f9e8]{background:#fbbf2433;color:#b45309}.ac-done[data-v-59f2f9e8]{font-size:11px;color:#059669;border:1px solid rgba(5,150,105,.4);border-radius:6px;padding:0 5px}.ac-detail[data-v-59f2f9e8]{font-size:13px;color:var(--text);margin-top:6px}.ac-metrics[data-v-59f2f9e8]{display:flex;flex-wrap:wrap;gap:14px;font-size:12px;color:var(--text-muted);margin-top:6px}.ac-tip[data-v-59f2f9e8]{font-size:12px;color:var(--text-muted);margin-top:6px}.ac-ops[data-v-59f2f9e8]{display:flex;flex-direction:column;gap:6px;align-items:stretch;justify-content:center;flex-shrink:0}.p-add[data-v-59f2f9e8]{color:#059669}.p-sub[data-v-59f2f9e8]{color:#dc2626}.dlg-target[data-v-59f2f9e8]{font-size:14px;color:var(--text-strong);margin-bottom:10px}.pf-stats[data-v-59f2f9e8]{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:16px}.pf-stat[data-v-59f2f9e8]{text-align:center;padding:12px 4px;border-radius:14px;background:var(--surface-2);border:1px solid var(--border)}.pf-stat span[data-v-59f2f9e8]{display:block;font-size:12px;color:var(--text-muted);margin-bottom:4px}.pf-stat b[data-v-59f2f9e8]{font-size:20px}.pf-timeline[data-v-59f2f9e8]{padding-left:4px}.pf-item[data-v-59f2f9e8]{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:14px}.pf-remark[data-v-59f2f9e8]{font-size:12px;color:var(--text-muted);margin-top:2px}@media (max-width: 768px){.alert-card[data-v-59f2f9e8]{flex-direction:column}.ac-ops[data-v-59f2f9e8]{flex-direction:row;flex-wrap:wrap}}.daily-behavior[data-v-31f44f23]{padding:4px}.page-head[data-v-31f44f23]{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:16px}.head-left[data-v-31f44f23]{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.head-title[data-v-31f44f23]{font-size:22px;font-weight:700;letter-spacing:-.02em}.seg[data-v-31f44f23]{--el-color-primary: #6366f1}.tab-badge[data-v-31f44f23]{margin-left:6px;transform:translateY(-1px)}.stat-grid[data-v-31f44f23]{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px;margin-bottom:16px}.page-body[data-v-31f44f23]{min-height:320px}@media (max-width: 768px){.page-head[data-v-31f44f23]{flex-direction:column;align-items:flex-start}.stat-grid[data-v-31f44f23]{grid-template-columns:repeat(2,1fr);gap:10px}}:root{--app-bg: #f6f7fb;--app-bg-grad: radial-gradient(1200px 700px at 12% -8%, rgba(99, 102, 241, .1), transparent 60%), radial-gradient(1000px 600px at 100% 0%, rgba(139, 92, 246, .08), transparent 55%), radial-gradient(900px 700px at 90% 100%, rgba(6, 182, 212, .06), transparent 55%);--surface: #ffffff;--surface-2: #f4f5fb;--surface-3: #eef0f7;--surface-hover: #f5f7fa;--surface-glass: rgba(255, 255, 255, .72);--surface-glass-border: rgba(15, 23, 42, .07);--border: rgba(15, 23, 42, .08);--border-strong: rgba(15, 23, 42, .14);--text-strong: #0f172a;--text: #334155;--text-muted: #94a3b8;--text-faint: #cbd5e1;--brand: #5b5bf0;--brand-2: #8b5cf6;--brand-3: #06b6d4;--brand-ink: #ffffff;--brand-soft: #eef0ff;--brand-grad: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);--brand-grad-soft: linear-gradient(135deg, rgba(99, 102, 241, .14), rgba(139, 92, 246, .14));--brand-glow: rgba(99, 102, 241, .35);--success: #10b981;--warning: #f59e0b;--danger: #ef4444;--info: #64748b;--r-xs: 8px;--r-sm: 10px;--r-md: 14px;--r-lg: 18px;--r-xl: 24px;--r-full: 999px;--shadow-xs: 0 1px 2px rgba(15, 23, 42, .04);--shadow-sm: 0 2px 8px -2px rgba(15, 23, 42, .08), 0 1px 2px rgba(15, 23, 42, .04);--shadow-md: 0 12px 30px -12px rgba(15, 23, 42, .16), 0 4px 10px -6px rgba(15, 23, 42, .08);--shadow-lg: 0 24px 60px -20px rgba(15, 23, 42, .22), 0 8px 20px -10px rgba(15, 23, 42, .1);--header-shadow: 0 1px 0 rgba(15, 23, 42, .04), 0 8px 24px -16px rgba(15, 23, 42, .12);--font-sans: "Inter", "PingFang SC", "Microsoft YaHei", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--ease-out: cubic-bezier(.16, 1, .3, 1)}html.dark{--app-bg: #070b16;--app-bg-grad: radial-gradient(1200px 700px at 10% -10%, rgba(99, 102, 241, .16), transparent 60%), radial-gradient(1000px 600px at 100% 0%, rgba(139, 92, 246, .12), transparent 55%), radial-gradient(900px 700px at 95% 100%, rgba(6, 182, 212, .1), transparent 55%);--surface: #0f1626;--surface-2: #161f33;--surface-3: #1d2840;--surface-hover: #1a2336;--surface-glass: rgba(15, 22, 38, .66);--surface-glass-border: rgba(255, 255, 255, .08);--border: rgba(255, 255, 255, .08);--border-strong: rgba(255, 255, 255, .16);--text-strong: #f1f5fb;--text: #cbd5e1;--text-muted: #8a99b3;--text-faint: #586079;--brand: #8b8cf8;--brand-2: #a78bfa;--brand-3: #22d3ee;--brand-ink: #ffffff;--brand-soft: #1a2140;--brand-grad: linear-gradient(135deg, #818cf8 0%, #a78bfa 100%);--brand-grad-soft: linear-gradient(135deg, rgba(129, 140, 248, .2), rgba(167, 139, 250, .2));--brand-glow: rgba(129, 140, 248, .45);--success: #34d399;--warning: #fbbf24;--danger: #f87171;--info: #94a3b8;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .3);--shadow-sm: 0 2px 10px -2px rgba(0, 0, 0, .45);--shadow-md: 0 14px 34px -14px rgba(0, 0, 0, .6);--shadow-lg: 0 28px 70px -22px rgba(0, 0, 0, .7);--header-shadow: 0 1px 0 rgba(255, 255, 255, .04), 0 10px 30px -18px rgba(0, 0, 0, .7)}html,body,#app{height:100%;background:var(--app-bg);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;background:var(--app-bg-grad);background-attachment:fixed;transition:background .6s ease}html.dark body{color:var(--text)}*{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}*::-webkit-scrollbar{width:9px;height:9px}*::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:999px;border:2px solid transparent;background-clip:content-box}*::-webkit-scrollbar-thumb:hover{background:var(--text-faint);background-clip:content-box}*::-webkit-scrollbar-track{background:transparent}:root{--el-color-primary: #5b5bf0;--el-color-primary-light-3: #8585f3;--el-color-primary-light-5: #a6a6f6;--el-color-primary-light-7: #c9c9fa;--el-color-primary-light-8: #dedeff;--el-color-primary-light-9: #eef0ff;--el-color-primary-dark-2: #4a4ac4;--el-color-success: #10b981;--el-color-warning: #f59e0b;--el-color-danger: #ef4444;--el-color-error: #ef4444;--el-color-info: #64748b;--el-border-radius-base: 10px;--el-border-radius-small: 8px;--el-border-radius-round: 999px;--el-font-size-base: 14px;--el-text-color-primary: var(--text-strong);--el-text-color-regular: var(--text);--el-text-color-secondary: var(--text-muted);--el-text-color-placeholder: var(--text-faint);--el-border-color: var(--border);--el-border-color-light: var(--border);--el-border-color-lighter: var(--border);--el-border-color-hover: var(--border-strong);--el-fill-color-blank: var(--surface);--el-fill-color-light: var(--surface-2);--el-fill-color: var(--surface-2);--el-bg-color: var(--surface);--el-bg-color-overlay: var(--surface);--el-bg-color-page: var(--app-bg);--el-box-shadow: var(--shadow-md);--el-box-shadow-light: var(--shadow-sm);--el-box-shadow-lighter: var(--shadow-xs)}html.dark{--el-color-primary: #8b8cf8;--el-color-primary-light-3: #6f70e8;--el-color-primary-light-5: #5456c8;--el-color-primary-light-7: #3a3c95;--el-color-primary-light-8: #2c2e72;--el-color-primary-light-9: #1c2140;--el-color-primary-dark-2: #a9aafb;--el-color-success: #34d399;--el-color-warning: #fbbf24;--el-color-danger: #f87171;--el-color-error: #f87171;--el-color-info: #94a3b8;--el-text-color-primary: var(--text-strong);--el-text-color-regular: var(--text);--el-text-color-secondary: var(--text-muted);--el-border-color: var(--border);--el-border-color-light: var(--border);--el-border-color-lighter: var(--border);--el-fill-color-blank: var(--surface);--el-fill-color-light: var(--surface-2);--el-bg-color: var(--surface);--el-bg-color-overlay: var(--surface);--el-box-shadow: var(--shadow-md)}:root,html.dark,.app-layout,.el-card,.el-menu,.el-header,.el-aside,.el-main{transition:background-color .45s ease,color .45s ease,border-color .45s ease,box-shadow .45s ease}.text-gradient{background:var(--brand-grad);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}.lux-card{position:relative;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);transition:transform .4s var(--ease-out),box-shadow .4s var(--ease-out),border-color .4s var(--ease-out)}.lux-card--hover:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);border-color:var(--border-strong)}.lux-card--glass{background:var(--surface);border:1px solid var(--border);backdrop-filter:saturate(160%) blur(12px);-webkit-backdrop-filter:saturate(160%) blur(12px)}.lux-card--glass:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;padding:1px;background:linear-gradient(160deg,#ffffff80,#fff0 40%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}html.dark .lux-card--glass:after{background:linear-gradient(160deg,#ffffff1f,#fff0 40%)}.lux-card--accent:before{content:"";position:absolute;top:0;left:24px;right:24px;height:3px;border-radius:0 0 8px 8px;background:var(--brand-grad);box-shadow:0 6px 18px -4px var(--brand-glow)}.lux-card__body{padding:22px 24px}.lux-card__header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 22px;border-bottom:1px solid var(--border)}.lux-section-title{display:flex;align-items:center;gap:10px;font-size:16px;font-weight:700;color:var(--text-strong);letter-spacing:.2px}.lux-section-title__icon{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:var(--r-sm);background:var(--brand-grad-soft);color:var(--brand);font-size:17px;flex-shrink:0}html.dark .lux-section-title__icon{color:var(--brand-2)}.lux-section-title__extra{margin-left:auto;font-size:13px;font-weight:500;color:var(--text-muted)}.lux-icon-chip{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--r-md);background:var(--brand-grad-soft);color:var(--brand);font-size:20px;flex-shrink:0}html.dark .lux-icon-chip{color:var(--brand-2)}.lux-divider{height:1px;background:var(--border);border:none;margin:18px 0}.lux-ring{--val: 0;width:64px;height:64px;border-radius:50%;background:radial-gradient(closest-side,var(--surface) 70%,transparent 71%),conic-gradient(var(--brand) calc(var(--val) * 1%),var(--surface-3) 0);display:inline-flex;align-items:center;justify-content:center;font-weight:700;color:var(--text-strong);font-size:14px}@keyframes lux-fade-up{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.anim-fade-up{animation:lux-fade-up .55s var(--ease-out) both}.stagger>*{animation:lux-fade-up .55s var(--ease-out) both}.stagger>*:nth-child(1){animation-delay:.04s}.stagger>*:nth-child(2){animation-delay:.1s}.stagger>*:nth-child(3){animation-delay:.16s}.stagger>*:nth-child(4){animation-delay:.22s}.stagger>*:nth-child(5){animation-delay:.28s}.stagger>*:nth-child(6){animation-delay:.34s}.stagger>*:nth-child(7){animation-delay:.4s}.stagger>*:nth-child(8){animation-delay:.46s}@media (prefers-reduced-motion: reduce){.anim-fade-up,.stagger>*{animation:none!important}*{scroll-behavior:auto!important}}.el-card{border-radius:var(--r-lg)!important;border-color:var(--border)!important;box-shadow:var(--shadow-sm)!important;overflow:hidden}.el-card__header{border-bottom:1px solid var(--border);padding:16px 20px}.el-card__body{padding:18px 20px}.el-card.is-hover-shadow:not(.lux-card):hover{box-shadow:var(--shadow-md)!important}.el-button--primary:not(.is-plain):not(.is-link):not(.is-text):not(.is-disabled){background:var(--brand-grad)!important;border-color:transparent!important;color:var(--brand-ink)!important;box-shadow:0 8px 20px -8px var(--brand-glow);transition:transform .3s var(--ease-out),box-shadow .3s var(--ease-out),filter .3s ease}.el-button--primary:not(.is-plain):not(.is-link):not(.is-text):not(.is-disabled):hover,.el-button--primary:not(.is-plain):not(.is-link):not(.is-text):not(.is-disabled):focus{transform:translateY(-1px);box-shadow:0 12px 26px -8px var(--brand-glow);filter:brightness(1.04);color:var(--brand-ink)!important}.el-button--primary:not(.is-plain):not(.is-link):not(.is-text):not(.is-disabled):active{transform:translateY(0)}.el-button--primary.is-plain:not(.is-link):not(.is-text):not(.is-disabled){background:var(--brand-soft)!important;border-color:var(--brand)!important;color:var(--brand)!important;box-shadow:none}.el-button--primary.is-plain:not(.is-link):not(.is-text):not(.is-disabled):hover,.el-button--primary.is-plain:not(.is-link):not(.is-text):not(.is-disabled):focus{background:var(--brand-grad)!important;border-color:transparent!important;color:var(--brand-ink)!important;box-shadow:0 8px 20px -8px var(--brand-glow)}.el-button--primary.is-text:not(.is-disabled),.el-button--primary.is-link:not(.is-disabled){color:var(--brand)!important;background:transparent!important}.el-button--primary.is-text:not(.is-disabled):hover,.el-button--primary.is-link:not(.is-disabled):hover{color:var(--brand-2)!important;background:var(--brand-grad-soft)!important}.el-button--primary.is-disabled{opacity:.65}.el-menu-item,.el-sub-menu__title{border-radius:var(--r-sm)}.el-input__wrapper,.el-textarea__inner,.el-select__wrapper{border-radius:var(--r-sm)!important}:root{--auth-bg-1: #eef2ff;--auth-bg-2: #f5f3ff;--auth-bg-3: #ecfeff;--auth-card-bg: rgba(255, 255, 255, .55);--auth-card-border: rgba(255, 255, 255, .65);--auth-card-shadow: 0 24px 70px -20px rgba(15, 23, 42, .35);--auth-text: #1e293b;--auth-text-soft: #64748b;--auth-grad-a: #6366f1;--auth-grad-b: #8b5cf6;--auth-grad-c: #06b6d4;--auth-glow: rgba(99, 102, 241, .35);--auth-field-bg: rgba(255, 255, 255, .55);--auth-field-bg-focus: rgba(255, 255, 255, .78);--auth-field-border: rgba(148, 163, 184, .3)}html.dark{--auth-bg-1: #070b18;--auth-bg-2: #0d1326;--auth-bg-3: #0a1726;--auth-card-bg: rgba(17, 24, 39, .55);--auth-card-border: rgba(255, 255, 255, .09);--auth-card-shadow: 0 24px 80px -20px rgba(0, 0, 0, .7);--auth-text: #e7ecf5;--auth-text-soft: #94a3b8;--auth-grad-a: #818cf8;--auth-grad-b: #a78bfa;--auth-grad-c: #22d3ee;--auth-glow: rgba(129, 140, 248, .5);--auth-field-bg: rgba(255, 255, 255, .05);--auth-field-bg-focus: rgba(255, 255, 255, .09);--auth-field-border: rgba(255, 255, 255, .14)}.auth-bg{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;overflow:hidden;background:linear-gradient(135deg,var(--auth-bg-1),var(--auth-bg-2) 48%,var(--auth-bg-3));transition:background .6s ease}.auth-blob{position:absolute;border-radius:50%;filter:blur(70px);opacity:.55;pointer-events:none}html.dark .auth-blob{opacity:.45;mix-blend-mode:screen}.auth-blob.b1{width:520px;height:520px;left:-120px;top:-120px;background:radial-gradient(circle at 30% 30%,var(--auth-grad-a),transparent 70%);animation:float1 16s ease-in-out infinite}.auth-blob.b2{width:460px;height:460px;right:-100px;top:10%;background:radial-gradient(circle at 50% 50%,var(--auth-grad-c),transparent 70%);animation:float2 19s ease-in-out infinite}.auth-blob.b3{width:420px;height:420px;left:25%;bottom:-140px;background:radial-gradient(circle at 50% 50%,var(--auth-grad-b),transparent 70%);animation:float3 22s ease-in-out infinite}@keyframes float1{0%,to{transform:translate(0) scale(1)}50%{transform:translate(60px,50px) scale(1.12)}}@keyframes float2{0%,to{transform:translate(0) scale(1)}50%{transform:translate(-50px,40px) scale(1.08)}}@keyframes float3{0%,to{transform:translate(0) scale(1)}50%{transform:translate(40px,-45px) scale(1.15)}}.auth-wrap{position:relative;z-index:1;min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;box-sizing:border-box}.auth-card{position:relative;width:410px;max-width:100%;padding:40px 36px 32px;border-radius:26px;background:var(--auth-card-bg);border:1px solid var(--auth-card-border);backdrop-filter:blur(30px) saturate(180%);-webkit-backdrop-filter:blur(30px) saturate(180%);box-shadow:var(--auth-card-shadow),inset 0 1px #ffffff59;color:var(--auth-text);animation:cardIn .8s cubic-bezier(.16,1,.3,1) both;overflow:hidden}.auth-card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(160deg,rgba(255,255,255,.25),transparent 40%);pointer-events:none}html.dark .auth-card:before{background:linear-gradient(160deg,rgba(255,255,255,.06),transparent 40%)}@keyframes cardIn{0%{opacity:0;transform:translateY(28px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.auth-brand{display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:14px}.auth-brand .logo{width:48px;height:48px;border-radius:12px;display:grid;place-items:center;overflow:hidden;box-shadow:0 8px 20px -8px var(--auth-glow);animation:popIn .6s .1s cubic-bezier(.16,1,.3,1) both}.auth-brand .logo img{width:100%;height:100%;display:block}.auth-title{font-size:25px;font-weight:800;letter-spacing:.5px;text-align:center;background:linear-gradient(100deg,var(--auth-grad-a),var(--auth-grad-b),var(--auth-grad-c),var(--auth-grad-a));background-size:220% auto;-webkit-background-clip:text;background-clip:text;color:transparent;animation:shine 6s linear infinite,popIn .6s .15s both}.auth-subtitle{text-align:center;font-size:13px;color:var(--auth-text-soft);margin:8px 0 26px;animation:fieldIn .5s .25s both}@keyframes shine{to{background-position:220% center}}@keyframes popIn{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}.auth-field{animation:fieldIn .55s both}.auth-field:nth-child(1){animation-delay:.3s}.auth-field:nth-child(2){animation-delay:.38s}.auth-field:nth-child(3){animation-delay:.46s}.auth-field:nth-child(4){animation-delay:.54s}@keyframes fieldIn{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.auth-card .el-form-item{margin-bottom:18px}.auth-card .el-input__wrapper{background:var(--auth-field-bg);border-radius:14px;box-shadow:0 0 0 1px var(--auth-field-border) inset;transition:box-shadow .25s ease,background .25s ease;padding:4px 14px}.auth-card .el-input__wrapper:hover{background:var(--auth-field-bg-focus);box-shadow:0 0 0 1px var(--auth-grad-a) inset}.auth-card .el-input__wrapper.is-focus{background:var(--auth-field-bg-focus);box-shadow:0 0 0 1px var(--auth-grad-a) inset,0 0 0 4px var(--auth-glow)}.auth-card .el-input__inner{color:var(--auth-text);height:40px}.auth-card .el-input__inner::placeholder{color:var(--auth-text-soft)}.auth-card .el-button.el-button--primary{width:100%;height:48px;border:none;border-radius:14px;font-weight:700;font-size:15px;letter-spacing:2px;color:#fff;background:linear-gradient(100deg,var(--auth-grad-a),var(--auth-grad-b));background-size:180% auto;box-shadow:0 14px 34px -12px var(--auth-glow);animation:fieldIn .55s .62s both,shine 8s linear infinite}.auth-card .el-button.el-button--primary:hover{background-position:right center;box-shadow:0 18px 42px -12px var(--auth-glow)}.auth-card .el-button.el-button--primary:active{transform:scale(.98)}.auth-extra{margin-top:20px;font-size:13px;color:var(--auth-text-soft);text-align:center;display:flex;flex-direction:column;gap:8px;animation:fieldIn .5s .7s both}.auth-extra .el-link{font-weight:600}.auth-extra .link-row{display:flex;align-items:center;justify-content:center;gap:4px}.auth-tip{margin-top:14px;font-size:12px;color:var(--auth-text-soft);text-align:center;opacity:.85;animation:fieldIn .5s .78s both}.auth-theme-toggle{position:fixed;top:22px;right:22px;z-index:5;width:44px;height:44px;border-radius:50%;display:grid;place-items:center;cursor:pointer;color:var(--auth-text);background:var(--auth-card-bg);border:1px solid var(--auth-card-border);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);box-shadow:var(--auth-card-shadow);transition:transform .3s cubic-bezier(.16,1,.3,1),color .3s}.auth-theme-toggle:hover{transform:rotate(-15deg) scale(1.08)}.auth-theme-toggle svg{width:20px;height:20px}.auth-success{position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;background:var(--auth-card-bg);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);animation:fadeIn .4s ease both;padding:24px;text-align:center}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.auth-success .check-circle{width:84px;height:84px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,var(--auth-grad-a),var(--auth-grad-b));box-shadow:0 14px 36px -12px var(--auth-glow);animation:popIn .5s .1s cubic-bezier(.16,1,.3,1) both}.auth-success .check-circle svg{width:44px;height:44px}.auth-success .check-path{stroke:#fff;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;fill:none;stroke-dasharray:48;stroke-dashoffset:48;animation:checkDraw .5s .45s cubic-bezier(.16,1,.3,1) forwards}@keyframes checkDraw{to{stroke-dashoffset:0}}.auth-success .success-title{font-size:19px;font-weight:700;color:var(--auth-text);animation:fieldIn .5s .5s both}.auth-success .success-desc{font-size:13px;color:var(--auth-text-soft);max-width:280px;line-height:1.7;animation:fieldIn .5s .6s both}.auth-success .success-dots{display:flex;gap:6px;margin-top:4px}.auth-success .success-dots i{width:7px;height:7px;border-radius:50%;background:var(--auth-grad-a);animation:blink 1.2s infinite ease-in-out}.auth-success .success-dots i:nth-child(2){animation-delay:.2s}.auth-success .success-dots i:nth-child(3){animation-delay:.4s}@keyframes blink{0%,to{opacity:.3}50%{opacity:1}}@media (max-width: 480px){.auth-card{padding:32px 22px 26px;border-radius:22px}.auth-title{font-size:22px}.auth-theme-toggle{top:14px;right:14px;width:40px;height:40px}}
