.update-page[data-v-8b058a63]{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;padding:20px;background:#151d2a7a;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:2000}.update-card[data-v-8b058a63]{width:min(92vw,420px);border-radius:18px;box-shadow:0 24px 52px #11182738!important}.update-logo[data-v-8b058a63]{font-size:30px;font-weight:800;color:#1f2937;margin-bottom:14px;text-align:center}.update-title[data-v-8b058a63]{font-size:18px;font-weight:700;color:#1f2937;text-align:center}.update-message[data-v-8b058a63]{margin-top:8px;margin-bottom:16px;line-height:1.5;font-size:13px;color:#475569;text-align:center}.update-progress-text[data-v-8b058a63]{margin-top:6px;font-size:12px;color:#64748b;text-align:right}.update-action-btn[data-v-8b058a63]{margin-top:16px}.login-page[data-v-495e970e]{--login-primary-rgb: 255, 107, 53;min-height:100vh;min-height:100dvh;background:var(--bg-grad)}.login-shell[data-v-495e970e]{width:100%;max-width:420px;margin:0 auto;padding:calc(env(safe-area-inset-top,0px) + 20px) 16px calc(env(safe-area-inset-bottom,0px) + 20px);min-height:100%;min-height:100dvh;display:flex;flex-direction:column;justify-content:center}.login-shell--loading[data-v-495e970e]{align-items:center}.brand-header[data-v-495e970e]{text-align:center;margin-bottom:16px}.brand-title[data-v-495e970e]{margin:0;font-size:30px;font-weight:700;color:var(--text-1);letter-spacing:.2px}.brand-subtitle[data-v-495e970e]{margin-top:6px;color:var(--text-2, #6f7f92);font-size:14px}.login-card[data-v-495e970e]{margin:0!important;border-radius:20px!important;border:1px solid rgba(148,163,184,.18)!important;background:#ffffffeb!important;box-shadow:0 16px 40px #0f172a14!important;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.login-card[data-v-495e970e] .ant-card-body{padding:20px}.form-title[data-v-495e970e]{font-size:22px;font-weight:600;color:var(--text-1);margin-bottom:4px}.form-subtitle[data-v-495e970e]{margin:0 0 16px;color:var(--text-2, #6f7f92);font-size:13px}.login-form[data-v-495e970e]{margin:0}.form-item[data-v-495e970e]{background:#f8fafceb;border:1px solid transparent;border-radius:12px;padding:9px 12px 8px;margin-bottom:12px;transition:border-color .2s ease,box-shadow .2s ease}.form-item[data-v-495e970e]:focus-within{border-color:rgba(var(--login-primary-rgb),.45);box-shadow:0 0 0 3px rgba(var(--login-primary-rgb),.12)}.field-label[data-v-495e970e]{display:block;margin-bottom:5px;color:var(--text-2, #6f7f92);font-size:12px;line-height:1.1}.form-item[data-v-495e970e] .ant-input,.form-item[data-v-495e970e] .ant-input-affix-wrapper,.form-item[data-v-495e970e] .ant-input-affix-wrapper:hover,.form-item[data-v-495e970e] .ant-input-affix-wrapper-focused{background:transparent!important;border:none!important;box-shadow:none!important;padding:0!important;min-height:auto!important}.form-item[data-v-495e970e] .ant-input{color:var(--text-1);font-size:15px}.form-item[data-v-495e970e] .ant-input::placeholder{color:#9aa8b7}.remember-row[data-v-495e970e]{margin-top:-2px;margin-bottom:8px;color:var(--text-2, #6f7f92)}.login-button[data-v-495e970e]{margin-top:8px;font-weight:600;letter-spacing:.3px}.version-tag[data-v-495e970e]{text-align:center;margin-top:12px;font-size:11px;color:#aab}@media (max-width: 576px){.brand-title[data-v-495e970e]{font-size:26px}.login-shell[data-v-495e970e]{max-width:100%;padding-left:14px;padding-right:14px}.login-card[data-v-495e970e]{border-radius:16px!important}}:root{--bg-grad: linear-gradient(180deg, #ffe8d9 0%, #fff4ed 30%, #fffaf7 60%, #fff8f3 100%);--surface: #ffffff;--surface-soft: #fafbfc;--line: #e8ecf1;--shadow-1: 0 2px 8px rgba(15, 23, 42, .08);--primary: #ff6b35;--text-1: #0f172a;--text-3: #64748b}*{box-sizing:border-box}html,body,#app{margin:0;width:100%;height:100%}body{background:var(--bg-grad);overflow:hidden;-webkit-font-smoothing:antialiased}.workspace{width:100%;height:100vh;overflow:hidden;display:grid;grid-template-columns:76px 280px minmax(0,1fr);transition:grid-template-columns .28s cubic-bezier(.4,0,.2,1)}.workspace.middle-collapsed{grid-template-columns:76px 0 minmax(0,1fr)}.rail-sider{min-width:0;border-right:1px solid var(--line);background:var(--surface-soft)}.rail-inner{height:100%;display:flex;flex-direction:column;align-items:center;gap:10px;padding:12px 8px}.rail-brand{width:56px;height:56px;border-radius:12px;border:0;background:linear-gradient(135deg,#ff8c42,#ff6b35,#e55f2f);box-shadow:0 6px 18px #ff6b3547;position:relative;display:block;color:#fff;text-align:center;line-height:1;overflow:hidden;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease,filter .15s ease}.rail-brand:hover{box-shadow:0 8px 20px #ff6b3557}.rail-brand:active{transform:scale(.96)}.rail-brand-main{position:absolute;left:50%;top:8px;transform:translate(-50%);font-size:8px;font-weight:800;line-height:1;opacity:.72;letter-spacing:1.1px;white-space:nowrap}.rail-brand-sub{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;min-height:16px;align-items:center;justify-content:center;font-size:16px;font-weight:900;line-height:1;white-space:nowrap}.rail-brand-sub.is-abc{letter-spacing:1px}.rail-brand-sub.is-jisuan{font-size:16px;letter-spacing:.2px}.rail-brand-role{position:absolute;left:50%;bottom:7px;transform:translate(-50%);font-size:8px;font-weight:700;line-height:1;letter-spacing:1px;opacity:.86;white-space:nowrap}.rail-nav{display:flex;flex-direction:column;align-items:center;gap:8px;width:100%}.rail-nav-item{width:56px;min-height:56px;border-radius:12px;border:1px solid transparent;background:transparent;color:#64748b;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:6px 4px;cursor:pointer;text-align:center;transition:all .18s ease}.rail-nav-item:hover{background:#fff;border-color:#e5ebf3;color:#334155}.rail-nav-item.active{color:#ff6b35;border-color:#ffd9c2;background:#fff3ed;box-shadow:0 3px 10px #ff6b3524}.rail-nav-item:disabled{opacity:.6;cursor:not-allowed}.rail-nav-icon{font-size:18px;line-height:1}.rail-nav-text{width:100%;text-align:center;font-size:11px;font-weight:700;line-height:1.05}.rail-actions{margin-top:auto;width:100%;border-top:1px solid var(--line);padding-top:10px;display:flex;flex-direction:column;align-items:center;gap:8px}.list-sider{min-width:0;overflow:hidden;background:var(--surface);border-right:1px solid var(--line);transition:opacity .18s ease}.workspace.middle-collapsed .list-sider{opacity:0;pointer-events:none}.list-inner{width:280px;height:100%;display:grid;grid-template-rows:auto 1fr;min-height:0}.list-inner.list-inner-groups{display:flex;flex-direction:column;overflow-y:auto;-ms-overflow-style:none;scrollbar-width:none}.list-inner.list-inner-groups::-webkit-scrollbar{display:none}.list-inner.list-inner-groups .list-header{position:sticky;top:0;z-index:1;background:var(--surface)}.list-header{padding:12px;border-bottom:1px solid var(--line);display:grid;gap:8px}.list-title-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.list-title{font-size:15px;font-weight:700;color:#1f2937}.status-strip{display:flex;flex-wrap:wrap;gap:6px;padding:8px;border-bottom:1px solid var(--line)}.student-scroll{min-height:0;overflow-y:auto;padding:8px;-ms-overflow-style:none;scrollbar-width:none}.student-scroll::-webkit-scrollbar{display:none}.group-filter-section{padding:10px}.group-filter-title{margin-bottom:8px;font-size:12px;font-weight:700;color:#334155}.group-filter-chip-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.group-filter-chip{width:100%;border:1px solid #e5eaf1;border-radius:12px;background:#f8fafc;color:#334155;font-size:12px;font-weight:700;padding:12px 10px;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:8px;min-height:52px;cursor:pointer;transition:all .15s ease}.group-filter-chip>span:first-child{line-height:1.2}.group-filter-chip .chip-count{min-width:0;border-radius:0;background:transparent;color:#6b7280;font-size:18px;font-weight:800;line-height:1.1;padding:0;text-align:left;border:0;transition:color .15s ease}.group-filter-chip.active{border-color:#ffcfb7;background:#fff0e8;color:#ff6b35;box-shadow:0 4px 12px #ff6b351f}.group-filter-chip.active .chip-count{color:#ea580c}.dashboard-middle-pane{height:100%;min-height:0;padding:12px;display:flex;flex-direction:column;gap:10px;overflow-y:auto;-ms-overflow-style:none;scrollbar-width:none}.dashboard-middle-pane::-webkit-scrollbar{display:none}.dashboard-middle-title{font-size:14px;font-weight:700;color:#1f2937}.dashboard-middle-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.dashboard-middle-stat{border:1px solid #edf2f7;border-radius:12px;background:#fafbfc;text-align:center;padding:10px 6px}.dashboard-middle-stat-value{font-size:20px;line-height:1;font-weight:800;color:#0f172a}.dashboard-middle-stat-label{margin-top:4px;font-size:11px;color:#64748b;font-weight:600}.dashboard-middle-log-title{font-size:13px;font-weight:700;color:#334155}.dashboard-middle-log-list{display:grid;gap:8px;align-content:start}.dashboard-middle-log-item{width:100%;border:1px solid #edf2f7;border-radius:10px;background:#fff;padding:8px 10px;text-align:left;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}.dashboard-middle-log-main{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.dashboard-middle-log-name{font-size:12px;font-weight:700;color:#0f172a}.dashboard-middle-log-type{font-size:11px;color:#64748b}.dashboard-middle-log-level{margin-left:auto;font-size:12px;font-weight:700;color:#16a34a}.dashboard-middle-log-level.down{color:#ef4444}.dashboard-middle-log-manual{font-size:10px;font-weight:700;color:#c2410c;background:#fff7ed;border:1px solid #fed7aa;border-radius:999px;padding:1px 6px}.dashboard-middle-log-acc{margin-left:auto;font-size:12px;font-weight:700}.dashboard-middle-log-acc.acc-good{color:#16a34a}.dashboard-middle-log-acc.acc-mid{color:#f59e0b}.dashboard-middle-log-acc.acc-low{color:#ef4444}.dashboard-middle-log-acc.acc-none{color:#94a3b8}.dashboard-middle-log-sub{margin-top:4px;font-size:11px;color:#94a3b8;line-height:1.3}.dashboard-middle-empty{font-size:12px;color:#94a3b8;padding-top:4px}.student-toolbar{margin-bottom:8px;padding:0}.batch-bar{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;border:1px solid #e8edf3;border-radius:10px;background:#fafbfc;padding:8px 10px}.batch-left{border:0;background:transparent;display:inline-flex;align-items:center;gap:4px;color:#64748b;font-size:12px;font-weight:700;cursor:pointer;padding:0}.batch-count{text-align:center;font-size:12px;color:#64748b;font-weight:600}.batch-generate{border:1px solid #ffd9c2;background:#fff5ef;color:#c2410c;height:28px;padding:0 10px;border-radius:8px;display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:700;cursor:pointer}.batch-generate:not(.disabled):hover{border-color:#ffc7a6;background:#ffeede;color:#9a3412}.batch-generate.disabled,.batch-generate:disabled{opacity:.45;cursor:not-allowed}.batch-icon{font-size:14px}.batch-icon.select{color:#ff6b35}.student-list{display:grid;gap:8px;align-content:start}.student-list.student-list-virtual{display:block}.student-list.student-list-virtual .student-card{margin-bottom:8px}.student-list.student-list-virtual .student-card:last-of-type{margin-bottom:0}.virtual-spacer{width:100%;pointer-events:none}.student-card{border:1px solid #edf2f7;box-shadow:var(--shadow-1);cursor:pointer;transition:all .18s ease}.student-card.active{border-color:#ffd7c4;background:#fff5ef}.student-head{display:flex;justify-content:space-between;align-items:center;gap:8px}.student-name{font-size:14px;font-weight:700;color:#1f2937}.student-meta{margin-top:2px;font-size:12px;color:#64748b}.student-main{flex:1;min-width:0}.student-card-action{min-width:86px;display:flex;justify-content:flex-end;align-items:center}.student-generate-btn{min-width:64px;height:24px;padding:0 7px;border-radius:6px;border:1px solid #cfe3ff;background:#eff6ff;color:#0a84ff;font-size:12px;font-weight:600;box-shadow:none}.student-generate-btn.ant-btn:hover,.student-generate-btn.ant-btn:focus{border-color:#b9d9ff;background:#e0f0ff;color:#0869cb}.student-generate-btn.ant-btn:disabled,.student-generate-btn.ant-btn[disabled]{opacity:.45;color:#0a84ff;border-color:#cfe3ff;background:#eff6ff}.student-generate-btn.ant-btn.ant-btn-sm{font-size:12px;height:24px;padding:0 7px;border-radius:6px}.student-status-dot{width:10px;height:10px;border-radius:50%;display:inline-block}.student-status-dot.dot-green{background:#16a34a;box-shadow:0 0 0 4px #16a34a24}.student-status-dot.dot-red{background:#ef4444;box-shadow:0 0 0 4px #ef444424}.main-content{min-width:0;overflow-y:auto;padding:16px;background:linear-gradient(180deg,#ffeede,#fff5ec 42%,#fff1e6);-ms-overflow-style:none;scrollbar-width:none}.main-content::-webkit-scrollbar{display:none}.students-workspace,.groups-workspace{min-height:100%;display:flex;flex-direction:column;gap:12px}.students-workspace{height:100%}.students-empty-frame.ant-empty{flex:1;margin:0;border:1px solid #e8edf3;border-radius:14px;background:#fff;box-shadow:var(--shadow-1);min-height:calc(100vh - 128px);min-height:calc(100dvh - 128px);display:flex;align-items:center;justify-content:center}.students-empty-frame.ant-empty .ant-empty-description{color:#64748b;font-size:13px;font-weight:600}.system-tabs .ant-tabs-nav{margin:0}.system-tabs .ant-tabs-tab{padding-top:8px;padding-bottom:8px}.groups-toolbar{display:grid;gap:10px}.stage-toolbar{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:10px;flex-wrap:wrap}.stage-toolbar-left{display:grid;gap:8px;min-width:0;flex:1}.stage-toolbar-right{min-width:260px}.stage-chip-group{display:flex;gap:8px;flex-wrap:wrap}.stage-chip{border:1px solid #edf2f7;background:#fff;color:#64748b;border-radius:999px;padding:5px 12px;font-size:12px;font-weight:700;cursor:pointer}.stage-chip.active{border-color:#ffd9c2;background:#fff3ed;color:#ff6b35}.stage-stat-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.stage-stat{border:1px solid #edf2f7;border-radius:12px;background:#fafbfc;padding:8px 10px}.stage-stat span{display:block;font-size:11px;color:#94a3b8}.stage-stat strong{display:block;margin-top:3px;font-size:18px;color:#0f172a}.group-batch-bar{margin-bottom:10px;border:1px solid #e8edf3;border-radius:10px;background:#fafbfc;padding:8px 10px;display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.group-batch-left,.group-batch-right{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.group-table-wrap{border:1px solid #edf2f7;border-radius:12px;background:#fff;overflow-y:auto;overflow-x:hidden}.group-table-wrap.virtual-scroll{max-height:calc(100vh - 300px);max-height:calc(100dvh - 300px)}.group-table{width:100%;border-collapse:separate;border-spacing:0;min-width:0;table-layout:auto}.group-table th,.group-table td{padding:10px 12px;text-align:left;font-size:12px;border-bottom:1px solid #f1f5f9;vertical-align:middle;word-break:break-word;white-space:nowrap}.group-table th{color:#64748b;font-weight:700;background:#fafbfc;white-space:nowrap;position:sticky;top:0;z-index:1}.group-table td{color:#1f2937}.group-common-col,.group-review-col,.group-data-col,.group-action-col{min-width:0}.group-actions-stack{display:inline-flex;flex-direction:row;align-items:center;gap:6px;flex-wrap:nowrap}.group-op-actions{display:inline-flex;flex-direction:column;align-items:flex-start;gap:6px}.group-data-actions{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}.group-op-actions .manage-link-btn,.group-actions-stack .manage-link-btn,.group-data-actions .manage-link-btn{white-space:nowrap;line-height:1.25}.group-word-list{display:flex;flex-direction:column;gap:0}.group-word-row{display:flex;align-items:flex-start;gap:12px;padding:10px 0;border-bottom:1px solid #f1f5f9}.group-word-row:last-child{border-bottom:none}.group-word-index{min-width:24px;text-align:right;font-size:11px;font-weight:700;color:#94a3b8;padding-top:2px}.group-word-main{flex:1;min-width:0}.group-word-en{font-size:15px;font-weight:700;color:#111827;line-height:1.4}.group-word-phonetic{margin-left:6px;font-size:12px;font-weight:500;color:#94a3b8}.group-word-cn{margin-top:2px;font-size:12px;color:#64748b;line-height:1.4}.group-passage-tabs{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:10px}.group-passage-tab{padding:4px 12px;border-radius:8px;border:1px solid #e5eaf1;background:#f8fafc;color:#64748b;font-size:12px;font-weight:600;cursor:pointer}.group-passage-tab.active{border-color:#ff6b35;background:#fff5ef;color:#ff6b35}.group-passage-ghost-btn{margin-left:auto;padding:4px 10px;border-radius:8px;border:1px solid #eef2f7;background:#fafbfc;color:#64748b;font-size:11px;font-weight:600;cursor:pointer}.group-passage-ghost-btn.active{border-color:#ffd7c4;background:#fff5ef;color:#ff6b35}.group-passage-card{border:1px solid #eef2f7;border-radius:12px;background:#fafbfc;padding:14px}.group-passage-meta{margin-bottom:10px;font-size:12px;color:#64748b}.group-passage-content{color:#1f2937;font-size:14px;line-height:1.85;white-space:normal}.group-passage-translation{margin-top:12px;border-top:1px dashed #e2e8f0;padding-top:12px}.group-passage-translation-title{font-size:12px;font-weight:700;color:#475569;margin-bottom:6px}.group-passage-translation-body{font-size:13px;color:#475569;line-height:1.7;white-space:normal}.group-passage-questions{margin-top:12px}.group-passage-question-title{margin-bottom:8px;font-size:12px;font-weight:700;color:#334155}.group-passage-question{margin-bottom:12px}.group-passage-question-text{margin-bottom:6px;font-size:13px;font-weight:600;color:#1f2937;white-space:normal}.group-passage-options{display:flex;flex-direction:column;gap:4px}.group-passage-option{padding:4px 8px;border-radius:8px;font-size:13px;color:#475569;white-space:normal}.group-passage-option.correct{background:#ecfdf3;color:#166534}.group-passage-option-label{font-weight:700;margin-right:4px}.group-passage-answer{margin-top:6px;font-size:12px;color:#0f766e;font-weight:600}.group-review-meta{border:1px solid #e8edf3;border-radius:10px;background:#f8fafc;padding:10px 12px;margin-bottom:12px;display:flex;justify-content:space-between;gap:10px;font-size:12px;color:#334155}.group-review-question{border:1px solid #edf2f7;border-radius:10px;padding:10px;margin-bottom:10px;background:#fff}.group-review-question-title{margin-bottom:8px;font-size:13px;font-weight:700;color:#1f2937}.group-review-options{display:flex;flex-wrap:wrap;gap:8px}.group-review-option-btn{border:1px solid #e5eaf1;background:#f8fafc;color:#475569;border-radius:8px;padding:6px 10px;font-size:12px;font-weight:600;cursor:pointer}.group-review-option-btn.active{border-color:#ffd7c4;background:#fff5ef;color:#ff6b35}.group-review-remark{margin-top:10px}.group-review-remark-label{margin-bottom:6px;font-size:12px;font-weight:700;color:#475569}.hub-themed-modal{overflow:hidden!important}.hub-themed-modal .ant-modal{top:16px;padding-bottom:0}.hub-themed-modal .ant-modal-content{border-radius:14px;border:1px solid #e8edf3;overflow:hidden;display:flex;flex-direction:column;max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px)}.hub-themed-modal .ant-modal-header,.hub-themed-modal .ant-modal-footer{flex-shrink:0}.hub-themed-modal .ant-modal-body{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;scrollbar-width:none;-ms-overflow-style:none}.hub-themed-modal .ant-modal-body::-webkit-scrollbar{width:0;height:0;display:none}.hub-themed-modal .ant-modal-wrap{overflow:hidden!important}.hub-themed-modal .ant-modal-header{border-bottom:1px solid #edf2f7;background:linear-gradient(180deg,#fff8f3,#fff)}.hub-themed-modal .ant-modal-title{color:#c2410c;font-weight:700}.hub-themed-modal .ant-modal-footer .ant-btn-primary{border-color:#ff6b35;background:#ff6b35}.hub-themed-modal .ant-modal-footer .ant-btn-primary:hover,.hub-themed-modal .ant-modal-footer .ant-btn-primary:focus{border-color:#ff824f;background:#ff824f}@media (max-width: 768px){.hub-themed-modal .ant-modal{top:8px}.hub-themed-modal .ant-modal-content{max-height:calc(100vh - 16px);max-height:calc(100dvh - 16px)}}.group-time-field{display:flex;flex-direction:column;gap:8px}.group-time-mode-row{display:inline-flex;align-items:center;gap:8px}.group-time-mode-btn{border:1px solid #ffd9c2;background:#fff7f2;color:#9a3412;border-radius:999px;padding:5px 12px;font-size:12px;font-weight:700;cursor:pointer;transition:all .16s ease}.group-time-mode-btn.active{border-color:#ff6b35;background:#ff6b35;color:#fff}.group-time-label{font-size:12px;font-weight:700;color:#475569}.group-time-input{height:40px;border:1px solid #ffd9c2;border-radius:10px;padding:0 12px;font-size:13px;color:#1f2937;background:#fff;outline:none}.group-time-input:focus{border-color:#ff6b35;box-shadow:0 0 0 3px #ff6b3514}.group-table th:first-child,.group-table td:first-child{padding-left:10px;padding-right:10px}.group-table .col-check{width:44px;min-width:44px;text-align:center}.group-virtual-spacer-row td{padding:0!important;border-bottom:none!important;background:transparent!important}.group-student-link{border:none;background:transparent;color:#ff6b35;font-size:13px;font-weight:700;cursor:pointer;padding:0}.group-student-link:hover{text-decoration:underline}.group-student-meta{margin-top:2px;color:#94a3b8;font-size:11px}.profile-card{background:#fff;border-radius:16px;padding:20px}.jisuan-profile-card{border:1px solid #e8edf3;box-shadow:var(--shadow-1)}.profile-top{display:flex;align-items:center;gap:14px;margin-bottom:14px}.profile-avatar{cursor:default}.profile-info{min-width:0;flex:1}.profile-name{font-size:18px;line-height:1;font-weight:800;color:#0f172a;letter-spacing:-.3px}.profile-meta{margin-top:4px;display:flex;align-items:center;gap:10px;flex-wrap:wrap;color:#64748b;font-size:12px;font-weight:500}.profile-meta .expiry-link{display:inline-flex;align-items:center;gap:3px;cursor:pointer}.profile-meta .expiry-link:hover{color:#ff6b35}.profile-meta .expiry-icon{font-size:13px;color:#f59e0b}.profile-meta .expired{color:#ef4444}.profile-primary-action{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 20px;border-radius:14px;border:0;background:linear-gradient(135deg,#ff8c42,#ff6b35);color:#fff;font-size:14px;font-weight:700;cursor:pointer;box-shadow:0 4px 14px #ff6b354d;transition:transform .15s ease,opacity .15s ease}.profile-primary-action:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.profile-primary-action:not(:disabled):active{transform:scale(.96)}.profile-actions{display:flex;gap:8px;flex-wrap:wrap}.act-chip{display:inline-flex;align-items:center;gap:5px;padding:8px 14px;border-radius:12px;border:1.5px solid #eef0f4;background:#fafbfc;color:#111827;font-size:13px;font-weight:600;cursor:pointer;transition:all .15s ease}.chip-icon{font-size:16px;color:#ff6b35}.act-chip:hover{background:#f4f5f7}.act-chip:active{transform:scale(.97)}.act-chip.warn,.act-chip.danger{color:#4b5563}.act-chip.warn .chip-icon{color:#f59e0b}.act-chip.danger .chip-icon{color:#ef4444}.student-profile-top{display:flex;align-items:center;gap:14px}.student-avatar{width:52px;height:52px;border-radius:16px;background:linear-gradient(135deg,#fff3ed,#ffe8dc);color:#ff6b35;display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:800;flex-shrink:0}.student-profile-info{min-width:0;flex:1}.student-profile-name{font-size:18px;line-height:1;font-weight:800;color:#0f172a}.student-profile-meta{margin-top:4px;display:flex;align-items:center;gap:10px;flex-wrap:wrap;color:#64748b;font-size:12px;font-weight:500}.student-profile-actions{display:grid;gap:8px;justify-items:end}.right-tabs{display:flex;gap:0;background:#fff;border-radius:12px;padding:3px;box-shadow:0 1px 3px #0000000d}.right-tab{flex:1;border:0;background:transparent;text-align:center;padding:8px 0;border-radius:10px;font-size:13px;font-weight:600;color:#9ca3af;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:4px;transition:background .2s,color .2s,box-shadow .2s}.right-tab.active{background:linear-gradient(135deg,#fff3ed,#ffe8dc);color:#ff6b35;box-shadow:0 2px 8px #ff6b3526}.tab-count{font-size:10px;font-weight:700;background:#ff6b3526;padding:0 5px;border-radius:8px;color:#ff6b35}.stats-row{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;flex-shrink:0}.stat-card{background:#fff;border-radius:14px;padding:16px 12px;text-align:center;box-shadow:0 1px 3px #0000000a,0 4px 12px #00000005}.stat-num{font-size:20px;font-weight:800;color:var(--text-1);line-height:1.2}.stat-num.accent{color:var(--primary, #ff6b35)}.stat-sub{font-size:11px;font-weight:500;color:var(--text-3)}.stat-lbl{margin-top:4px;font-size:11px;color:#b0b8c4;font-weight:500}.chart-card{background:#fff;border-radius:16px;padding:16px 20px 12px;box-shadow:0 1px 3px #0000000a,0 4px 12px #00000005;flex:1 1 0;display:flex;flex-direction:column;min-height:0}.chart-toggle{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:12px;flex-shrink:0;flex-wrap:wrap}.toggle-group{display:flex;gap:4px}.toggle-btn{padding:5px 14px;border-radius:10px;font-size:12px;font-weight:600;color:var(--text-3);background:#fafbfc;cursor:pointer;transition:all .2s;-webkit-tap-highlight-color:transparent;border:none}.toggle-btn.active{background:linear-gradient(135deg,#fff3ed,#ffe8dc);color:var(--primary);box-shadow:0 2px 8px #ff6b3526}.toggle-btn.ghost{background:#f4f5f7;color:#7b8698}.toggle-btn.ghost.active{background:#fff;color:var(--primary);box-shadow:inset 0 0 0 1px #ff6b3540}.chart-area{flex:1 1 auto;min-height:0;height:100%;position:relative}.chart-area canvas{width:100%!important;height:100%!important}.overview-chart-svg{width:100%;height:100%}.overview-chart-grid line{stroke:#0000000a;stroke-width:1}.overview-chart-grid text,.overview-chart-xaxis text{fill:#94a3b8;font-size:11px;font-weight:500}.overview-chart-xaxis text{text-anchor:middle}.manage-filter-row{display:flex;gap:8px}.manage-filter-chip{border:1px solid #e6eaf1;background:#f4f6fa;color:#64748b;border-radius:10px;padding:6px 12px;font-size:12px;font-weight:700;cursor:pointer}.manage-filter-chip.active{border-color:#ffd5c2;background:#fff6f2;color:#ff6b35}.manage-batch-bar{margin-bottom:10px;border:1px solid #e8edf3;border-radius:10px;background:#fafbfc;padding:8px 10px;display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.manage-batch-left,.manage-batch-right{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.manage-selected-count{font-size:12px;color:#64748b;font-weight:600}.manage-check{display:inline-flex;align-items:center;gap:6px;color:#475569;font-size:12px;font-weight:600;cursor:pointer;-webkit-user-select:none;user-select:none}.manage-check input{width:16px;height:16px;margin:0;-moz-appearance:none;appearance:none;-webkit-appearance:none;border:1.5px solid #cbd5e1;border-radius:4px;background:#fff;display:inline-grid;place-content:center;cursor:pointer;transition:background-color .16s ease,border-color .16s ease,box-shadow .16s ease}.manage-check input:before{content:"";width:9px;height:5px;border:2px solid #fff;border-top:0;border-right:0;transform:rotate(-45deg) scale(0);transform-origin:center;transition:transform .14s ease}.manage-check input:hover{border-color:#fb923c}.manage-check input:checked{border-color:#f97316;background:#f97316;box-shadow:0 0 0 3px #f9731633}.manage-check input:checked:before{transform:rotate(-45deg) scale(1)}.manage-check input:focus-visible{outline:none;box-shadow:0 0 0 3px #3b82f62e}.manage-check input:disabled{opacity:.55;cursor:not-allowed}.manage-head-left{gap:6px}.manage-list,.report-list{display:grid;gap:10px}.manage-item-card,.report-item-card{border:1px solid #edf2f7}.student-manage-pane .manage-list{margin-top:8px;gap:10px}.student-manage-pane .manage-item-card{border-radius:16px;background:#fff;border:none;box-shadow:0 2px 8px #0f172a0d,0 1px 2px #0f172a0a;padding:14px 14px 12px}.student-report-pane .report-list{gap:12px}.student-report-pane .report-item-card{border-radius:16px;background:#fff;border:none;box-shadow:0 2px 8px #0f172a0d,0 1px 2px #0f172a0a;padding:16px 20px}.student-report-pane .report-head{margin-bottom:12px}.student-report-pane .report-metrics{margin-bottom:14px}.student-report-pane .report-section{margin-top:4px}.student-report-pane.report-pane-abc .report-metrics{display:flex;gap:8px;flex-wrap:nowrap}.student-report-pane.report-pane-abc .report-metric{flex:1;min-width:0;border:none;background:#fafbfc;border-radius:12px;padding:12px 8px}.student-report-pane.report-pane-abc .report-metric span{font-size:10px;margin-bottom:2px;color:#94a3b8}.student-report-pane.report-pane-abc .report-metric strong{font-size:16px;font-weight:800}.student-report-pane.report-pane-abc .report-section-title{margin-bottom:8px}.student-report-pane.report-pane-abc .report-section-title span:first-child{font-size:12px;font-weight:700}.student-report-pane.report-pane-abc .report-section-sub,.student-report-pane.report-pane-abc .report-section-right{font-size:11px;font-weight:500;color:#94a3b8}.student-report-pane.report-pane-abc .report-rings{gap:8px;flex-wrap:nowrap}.student-report-pane.report-pane-abc .report-ring-item{border-radius:12px;background:#fafbfc;padding:10px 8px}.student-report-pane.report-pane-abc .report-ring-title{font-size:10px;color:#94a3b8;font-weight:500;margin-bottom:4px}.jisuan-report-toolbar{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}.jisuan-report-title{font-size:14px;font-weight:700;color:#334155}.student-report-pane.report-pane-jisuan .jisuan-record-table .ant-table-thead>tr>th{font-size:12px;color:#64748b;background:#f8fafc}.student-report-pane.report-pane-jisuan .jisuan-record-table .ant-table-tbody>tr>td{font-size:12px;color:#334155}.jisuan-report-detail-modal .ant-modal-body{max-height:72vh;overflow:auto}.jisuan-report-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:12px}.jisuan-report-summary-item{border:1px solid #e6edf5;background:#f8fafc;border-radius:10px;padding:10px}.jisuan-report-summary-label{font-size:12px;color:#64748b;margin-bottom:4px}.jisuan-report-summary-value{font-size:14px;color:#0f172a;font-weight:600;line-height:1.35}.jisuan-report-tabs .ant-tabs-content{min-height:280px}.jisuan-page-link{padding-left:0}.student-manage-pane .manage-item-actions{margin-top:0}.student-manage-pane .abc-manage-actions .manage-item-actions-left,.student-manage-pane .abc-manage-actions .manage-item-actions-right{gap:8px}.student-manage-pane .manage-link-btn{border:1px solid #e7edf5;background:#f8fafc;color:#475569;border-radius:10px;padding:4px 12px;min-height:30px;font-size:12px;font-weight:600;cursor:pointer;line-height:1.2;transition:background .15s ease,border-color .15s ease,color .15s ease,transform .12s ease}.student-manage-pane .manage-link-btn:hover{background:#f1f5f9;border-color:#dbe5ef;color:#334155}.student-manage-pane .manage-link-btn:active{transform:translateY(1px)}.student-manage-pane .manage-link-btn:disabled{color:#94a3b8;border-color:#e7edf5;background:#f8fafc;cursor:not-allowed}.student-manage-pane .abc-manage-actions .manage-item-actions-left .manage-link-btn{border-color:#e5eaf1;background:#f8fafc;border-radius:9px;padding:4px 11px;min-height:30px}.student-manage-pane .abc-manage-actions .manage-item-actions-left .manage-link-btn:hover{background:#eef2f7;border-color:#d9e2ed;color:#334155}.student-manage-pane .abc-manage-actions .manage-item-actions-right .manage-link-btn{border-width:1px;padding:4px 13px;border-radius:10px;min-height:30px}.student-manage-pane .manage-link-btn.action-primary{border-color:#ffd7c4;background:#fff5ef;color:#ff6b35}.student-manage-pane .manage-link-btn.action-success{border-color:#bbf7d0;background:#ecfdf3;color:#15803d}.student-manage-pane .manage-link-btn.action-warning{border-color:#fde68a;background:#fffbeb;color:#b45309}.student-manage-pane .manage-link-btn.action-danger{border-color:#fecaca;background:#fef2f2;color:#dc2626}.student-manage-pane .manage-link-btn.action-primary:hover{border-color:#ffc3a6;background:#ffede4;color:#ea580c}.student-manage-pane .manage-link-btn.action-success:hover{border-color:#86efac;background:#dcfce7;color:#166534}.student-manage-pane .manage-link-btn.action-warning:hover{border-color:#fcd34d;background:#fef3c7;color:#92400e}.student-manage-pane .manage-link-btn.action-danger:hover{border-color:#fca5a5;background:#fee2e2;color:#b91c1c}.student-manage-pane .pager-bar{padding-bottom:12px}.manage-item-head,.report-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.manage-item-meta,.report-head-left{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.manage-time{font-size:11px;color:#94a3b8}.manage-id{font-size:12px;font-weight:600;color:#475569}.group-type{font-size:11px;font-weight:700;padding:2px 10px;border-radius:8px}.group-type.t-basic{background:#eff6ff;color:#3b82f6}.group-type.t-upgrade{background:#ecfdf3;color:#16a34a}.group-type.t-consolidation{background:#fff7ed;color:#f59e0b}.group-type.t-application{background:#fef2f2;color:#ef4444}.group-status{font-size:10px;font-weight:700;padding:2px 8px;border-radius:8px}.group-status.st-pending{background:#ffedd5;color:#9a3412}.group-status.st-running{background:#ccfbf1;color:#0f766e}.group-status.st-tested{background:#eff6ff;color:#1d4ed8}.group-status.st-paused{background:#fef3c7;color:#92400e}.group-status.st-completed{background:#dcfce7;color:#166534}.group-status.st-pending-review{background:#fff7ed;color:#c2410c;border:1px solid #fed7aa}.group-status.st-not_generated{background:#e2e8f0;color:#475569}.pdf-badge{font-size:10px;font-weight:600;padding:2px 8px;border-radius:6px;background:#f4f5f7;color:#b0b8c4}.pdf-badge.pdf-generating,.pdf-badge.pdf-pending{background:#fffbeb;color:#d97706}.pdf-badge.pdf-completed{background:#ecfdf3;color:#16a34a}.pdf-badge.pdf-failed{background:#fef2f2;color:#ef4444}.duration-badge{font-size:10px;font-weight:700;padding:2px 8px;border-radius:6px;background:#fff5ef;color:#c2410c;border:1px solid #ffd9c2}.pause-badge{font-size:10px;font-weight:700;padding:2px 8px;border-radius:6px;border:1px solid transparent}.pause-badge.running{background:#ecfdf3;color:#15803d;border-color:#bbf7d0}.pause-badge.paused{background:#fff7ed;color:#c2410c;border-color:#fed7aa}.manage-item-actions{margin-top:4px}.abc-manage-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:nowrap}.abc-manage-actions .manage-item-actions-left,.abc-manage-actions .manage-item-actions-right{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.abc-manage-actions .manage-item-actions-left{flex:1;min-width:0}.abc-manage-actions .manage-item-actions-right{justify-content:flex-end;margin-left:auto;flex-shrink:0}.jisuan-manage-actions{justify-content:flex-end}.jisuan-manage-actions .manage-item-actions-right{justify-content:flex-end;margin-left:auto}.manage-link-btn{border:1px solid #e5eaf1;background:#f8fafc;color:#64748b;border-radius:8px;padding:4px 9px;font-size:12px;font-weight:600;line-height:1.2;cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease}.manage-link-btn:hover{background:#eef2f7}.manage-link-btn.action-primary{border-color:#c7e0ff;background:#eff6ff;color:#1d4ed8}.manage-link-btn.action-success{border-color:#bbf7d0;background:#ecfdf3;color:#15803d}.manage-link-btn.action-warning{border-color:#fde68a;background:#fffbeb;color:#b45309}.manage-link-btn.action-danger{border-color:#fecaca;background:#fef2f2;color:#dc2626}.manage-link-btn.action-print{border-color:#ffd7c4;background:#fff5ef;color:#ff6b35}.manage-timing{margin-bottom:10px;padding:10px;border-radius:10px;background:linear-gradient(180deg,#fbfdff,#f8fbff);border:1px solid #eaf0f7}.timing-flow-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px;row-gap:24px;width:100%;padding:10px 0 8px}.flow-chip{min-width:108px;border:1px solid #dbe7f5;background:#f5f9ff;border-radius:10px;padding:6px 8px;display:flex;flex-direction:column;align-items:center;gap:2px;flex:0 0 auto}.flow-chip.completed{border-color:#bde7cc;background:#effcf4}.flow-chip.active{border-color:#bfd7ff;background:#edf5ff}.flow-chip.pause{border-color:#fed7aa;background:#fff7ed}.flow-chip.resume{border-color:#bbf7d0;background:#ecfdf3}.flow-chip.pause .flow-name{color:#c2410c}.flow-chip.resume .flow-name{color:#15803d}.flow-name{font-size:11px;font-weight:700;color:#4f5f75;line-height:1.2;white-space:nowrap}.flow-time{font-size:10px;color:#7f90a6;line-height:1.2;white-space:nowrap}.flow-event{max-width:124px;font-size:10px;line-height:1.35;color:#8a9aaf;text-align:center;white-space:normal;word-break:break-all}.flow-arrow{min-width:62px;display:inline-flex;align-items:center;justify-content:center;position:relative;align-self:center;overflow:visible}.arrow-line{width:42px;height:2px;border-radius:999px;background:#cfdbeb;position:relative}.arrow-line:after{content:"";position:absolute;right:-1px;top:-3px;width:0;height:0;border-top:4px solid transparent;border-bottom:4px solid transparent;border-left:6px solid #cfdbeb}.flow-arrow.active .arrow-line{background:#59a8ff}.flow-arrow.active .arrow-line:after{border-left-color:#59a8ff}.arrow-time{position:absolute;left:50%;bottom:100%;margin-bottom:4px;transform:translate(-50%);font-size:10px;color:#8091a7;white-space:nowrap}@media (max-width: 1100px){.timing-flow-row{gap:12px;row-gap:24px}.flow-chip{padding:6px 2px}.flow-name{font-size:10px}.flow-time,.arrow-time{font-size:9px}}@media (max-width: 768px){.flow-chip{min-width:82px;padding:5px 6px}.flow-arrow{min-width:50px}}.report-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:10px}.report-metric{border:1px solid #edf2f7;background:#fafbfc;border-radius:10px;padding:10px 8px;text-align:center}.report-metric span{display:block;font-size:11px;color:#94a3b8}.report-metric strong{display:block;margin-top:4px;font-size:16px;color:#0f172a}.report-metric strong.acc-none{color:#94a3b8;font-size:14px;font-weight:600}.report-section{margin-top:4px}.report-section-title{display:flex;align-items:center;gap:8px;margin-bottom:8px}.report-section-title span:first-child{font-size:12px;font-weight:700;color:#0f172a}.report-section-sub{font-size:11px;color:#94a3b8;font-weight:500}.report-section-right{margin-left:auto;font-size:11px;color:#94a3b8;font-weight:500}.report-rings{display:flex;flex-wrap:nowrap;gap:10px}.report-ring-item{flex:1;min-width:0;border-radius:12px;background:#fafbfc;padding:10px 8px;display:flex;flex-direction:column;align-items:center;gap:4px}.report-ring-circle{width:76px;height:76px;position:relative}.report-ring-circle svg{width:76px;height:76px;transform:rotate(-90deg)}.report-ring-bg{fill:none;stroke:#f0f2f5;stroke-width:6}.report-ring-bar{fill:none;stroke-width:6;stroke-linecap:round;transition:stroke-dashoffset .6s ease}.report-ring-bar.acc-high{stroke:#16a34a}.report-ring-bar.acc-mid{stroke:#f59e0b}.report-ring-bar.acc-low{stroke:#ef4444}.report-ring-center{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center}.report-ring-pct{font-size:14px;font-weight:800;color:#1f2937;line-height:1.2}.report-ring-score{font-size:9px;color:#94a3b8;font-weight:500}.report-ring-title{font-size:10px;color:#475569;font-weight:500}.level-log-pane{font-size:12px;background:#fff;border-radius:12px;overflow-x:auto;overflow-y:hidden;box-shadow:0 1px 3px #0000000a}.student-panel-card .ant-card-body{border-radius:0 0 12px 12px}.level-log-header{display:flex;align-items:center;min-width:760px;padding:10px 14px;font-size:11px;font-weight:600;color:#94a3b8;background:#fafbfc;border-bottom:1px solid #eef0f4}.level-log-row{display:flex;align-items:center;min-width:760px;padding:10px 14px;border-bottom:1px solid #f4f5f7}.level-log-row:last-child{border-bottom:none}.level-log-row.highlight{background:#fffbf7}.col-group{width:48px;flex-shrink:0;color:#475569;font-weight:600}.col-ttype{flex:1;flex-shrink:0}.ttype-tag{font-size:10px;font-weight:700;padding:1px 6px;border-radius:4px;white-space:nowrap}.ttype-tag.t-basic{background:#f4f5f7;color:#888}.ttype-tag.t-upgrade{background:#ecfdf3;color:#16a34a}.ttype-tag.t-consolidation{background:#fff7ed;color:#f59e0b}.ttype-tag.t-application{background:#fef2f2;color:#ef4444}.col-vocab{flex:1;display:flex;align-items:center;gap:4px}.col-vocab-range{flex:1;color:#94a3b8;font-size:11px}.col-acc{flex:1;font-size:11px;color:#475569}.col-suggest{flex:1;display:flex;align-items:center;gap:5px}.col-time{width:82px;flex-shrink:0;color:#94a3b8;font-size:11px;text-align:right}.delta{font-weight:800;font-size:13px}.delta.up{color:#16a34a}.delta.down{color:#ef4444}.level-tag{font-size:10px;font-weight:700;padding:1px 6px;border-radius:4px}.level-tag.up{background:#ecfdf3;color:#16a34a}.level-tag.down{background:#fef2f2;color:#ef4444}.streak{font-weight:700;font-size:12px}.streak.up{color:#16a34a}.streak.down{color:#ef4444}.streak.reset{color:#94a3b8}.muted{color:#94a3b8;font-weight:500}.pager-bar{margin-top:10px;display:flex;align-items:center;justify-content:center;gap:10px}.pager-btn{border:1px solid #e5e7eb;background:#fff;color:#64748b;border-radius:8px;padding:5px 12px;font-size:12px;font-weight:600;cursor:pointer}.pager-btn:disabled{opacity:.45;cursor:not-allowed}.pager-info{color:#94a3b8;font-size:12px}.stage-card,.dashboard-card{border:1px solid #e8edf3;box-shadow:var(--shadow-1)}.dashboard-alert{margin-bottom:8px}.board-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:12px}.board-metric{border:1px solid #edf2f7;border-radius:10px;background:#fff;padding:10px;display:flex;flex-direction:column;gap:3px}.board-metric span{font-size:12px;color:#64748b}.board-metric strong{font-size:20px;color:#0f172a;line-height:1}.board-table-wrap{border:1px solid #edf2f7;border-radius:12px;background:#fff;overflow:auto}.board-table{width:100%;border-collapse:separate;border-spacing:0;min-width:980px}.board-table th,.board-table td{padding:10px 12px;text-align:center;font-size:12px;border-bottom:1px solid #f1f5f9;vertical-align:middle}.board-table th{color:#64748b;font-weight:700;background:#fafbfc;white-space:nowrap;position:sticky;top:0;z-index:2}.board-table th.col-sort{cursor:pointer;-webkit-user-select:none;user-select:none}.board-table td{color:#1f2937}.board-table th:first-child,.board-table td:first-child{text-align:left;padding-left:16px}.board-table tbody tr{cursor:pointer;transition:background .15s ease}.board-table tbody tr:hover{background:#f8f9fb}.col-stu{min-width:120px}.stu-cell{display:flex;align-items:center;gap:10px}.stu-avatar{width:32px;height:32px;border-radius:10px;background:linear-gradient(135deg,#fff3ed,#ffe8dc);color:#ff6b35;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:800;flex-shrink:0}.stu-text{min-width:0}.stu-name{font-size:13px;font-weight:700;color:#111827;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stu-grade{font-size:10px;color:#94a3b8;margin-top:1px}.acc-val{font-weight:700;font-size:13px;font-variant-numeric:tabular-nums}.acc-val.acc-good{color:#16a34a}.acc-val.acc-mid{color:#f59e0b}.acc-val.acc-low{color:#ef4444}.acc-val.acc-none{color:#cbd5e1;font-weight:500}.clickable-acc,.clickable-val{cursor:pointer}.clickable-acc:hover,.clickable-val:hover{text-decoration:underline}.clickable-val{color:#ff6b35;font-weight:700}.board-popover{min-width:200px}.board-pop-title{font-size:14px;font-weight:700;color:#0f172a;margin-bottom:8px}.board-pop-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:6px 0;border-bottom:1px solid #f1f5f9}.board-pop-row:last-child{border-bottom:none}.board-pop-row span{color:#64748b;font-size:12px}.board-pop-row strong{color:#1f2937;font-size:13px;font-weight:700}.board-pop-empty{padding:8px 0;color:#94a3b8;font-size:12px}.board-level-btn{display:inline-flex;align-items:center;justify-content:center;min-width:34px;padding:2px 10px;border-radius:999px;border:1px solid #e2e8f0;background:#f8fafc;color:#334155;font-size:12px;font-weight:700;cursor:pointer;transition:all .15s ease}.board-level-btn:hover{border-color:#ffcfb8;background:#fff3ed;color:#ff6b35}.level-popover{min-width:220px}.board-level-log-list{max-height:260px;overflow-y:auto}.board-level-log-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:6px 0;border-bottom:1px solid #f1f5f9;color:#334155;font-size:12px;font-weight:700}.board-level-log-row:last-child{border-bottom:none}.board-level-log-row.up{color:#16a34a}.board-level-log-row.down{color:#ef4444}.board-level-log-time{color:#94a3b8;font-size:11px;font-weight:500;white-space:nowrap}.growth-up{color:#16a34a!important}.growth-down{color:#ef4444!important}.board-status{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:700}.board-status.status-running{color:#0f766e;background:#ccfbf1}.board-status.status-paused{color:#b45309;background:#fef3c7}.board-status.status-pending{color:#92400e;background:#ffedd5}.board-status.status-completed{color:#1d4ed8;background:#dbeafe}.board-status.status-not_generated{color:#475569;background:#e2e8f0}.trend-actions{margin-bottom:10px}.trend-summary{display:flex;align-items:center;justify-content:space-between;color:#64748b;font-size:12px;margin-bottom:8px}.trend-svg-wrap{height:300px;border:1px solid #edf2f7;border-radius:12px;background:#fff;overflow:hidden}.trend-svg{width:100%;height:100%}.trend-grid line{stroke:#e5e7eb;stroke-width:1}.trend-grid text{fill:#94a3b8;font-size:11px}.trend-main-line{fill:none;stroke:#ff6b35;stroke-width:2.5}.trend-avg-line{fill:none;stroke:#94a3b8;stroke-width:1.5;stroke-dasharray:6 4}.trend-points circle{fill:#ff6b35}.trend-foot-list{margin-top:10px;display:grid;gap:6px}.trend-foot-item{border:1px solid #edf2f7;border-radius:8px;padding:7px 10px;display:grid;grid-template-columns:88px 1fr 1fr;gap:8px;align-items:center;color:#64748b;font-size:12px}.trend-foot-item strong{color:#0f172a;font-size:13px;font-weight:700}.stage-card .ant-card-head{min-height:52px;border-bottom:1px solid #eef2f6;padding:0 16px}.stage-card .ant-card-head-title{font-size:16px;font-weight:700}.stage-card .ant-card-extra{color:#64748b;font-size:12px}.task-list{display:grid;gap:10px}.task-card{border:1px solid #edf2f7}.task-head{display:flex;justify-content:space-between;gap:8px;align-items:center;margin-bottom:8px}.task-title{font-size:14px;font-weight:700}.task-meta{font-size:12px;color:#64748b}.task-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:10px}.task-summary-item{border:1px solid #edf2f7;border-radius:8px;padding:6px 8px;display:flex;flex-direction:column;gap:2px;background:#fff}.task-summary-item span{font-size:11px;color:#64748b;line-height:1.1}.task-summary-item strong{font-size:13px;color:#1f2937;line-height:1.1}.drawer-block{margin-bottom:10px;border:1px solid #edf2f7}.summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.summary-item{border:1px solid #edf2f7;border-radius:8px;padding:8px 10px;display:flex;justify-content:space-between;color:#64748b;font-size:12px}.summary-item strong{color:#1f2937}.worksheet-list{display:grid;gap:8px}.worksheet-item{border:1px solid #edf2f7}.worksheet-head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px}.worksheet-no{font-size:13px;font-weight:700;color:#0f172a}.timeline-row{display:flex;justify-content:space-between;gap:8px;color:#64748b;font-size:12px}@media (max-width: 767px){.main-content{padding:12px}.board-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.student-profile-top,.profile-top{flex-wrap:wrap}.student-profile-actions{width:100%;justify-items:start}.profile-primary-action{width:100%;justify-content:center}.profile-card{padding:14px}.stats-row{grid-template-columns:repeat(2,minmax(0,1fr))}.chart-area{min-height:0}.report-metrics{grid-template-columns:1fr}.report-rings{grid-template-columns:repeat(2,minmax(0,1fr))}}
