:root{--bg-page:#f4f6fb;--bg-sidebar:#eef2f9;--bg-card:#fff;--bg-hover:#eef4fb;--text-primary:#1f2d3d;--text-secondary:#5a6b7b;--text-light:#aab4c0;--primary:#1e88e5;--primary-light:#90caf9;--primary-bg:#e3f2fd;--red:#ef5350;--orange:#fb8c00;--blue:#1e88e5;--green:#43a047;--purple:#8e24aa;--border:#e0e6ed;--border-light:#eef1f5;--radius:8px;--radius-sm:4px;--shadow:0 1px 3px #00000014;--shadow-md:0 4px 12px #0000001a}body{background:var(--bg-page);color:var(--text-primary);font-family:Microsoft YaHei,Segoe UI,sans-serif;font-size:14px;line-height:1.6}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#c5cdd6;border-radius:3px}.login-page[data-v-3d10678a]{background:linear-gradient(135deg,#1e3c72 0%,#2a5298 50%,#667eea 100%);justify-content:center;align-items:center;min-height:100vh;display:flex}.login-card[data-v-3d10678a]{text-align:center;background:#fff;border-radius:20px;width:400px;max-width:92vw;padding:48px 40px;box-shadow:0 20px 60px #00000040}.login-icon[data-v-3d10678a]{margin-bottom:8px;font-size:56px}.login-card h1[data-v-3d10678a]{color:#1e3c72;margin-bottom:4px;font-size:24px}.login-subtitle[data-v-3d10678a]{color:#888;margin-bottom:28px;font-size:14px}.login-form[data-v-3d10678a]{text-align:left}.login-field[data-v-3d10678a]{margin-bottom:18px}.login-field label[data-v-3d10678a]{color:#333;margin-bottom:6px;font-size:13px;font-weight:600;display:block}.login-field input[data-v-3d10678a]{box-sizing:border-box;border:2px solid #e0e0e0;border-radius:10px;width:100%;padding:11px 14px;font-size:15px;transition:border-color .2s}.login-field input[data-v-3d10678a]:focus{border-color:#1e88e5;outline:none}.pwd-wrapper[data-v-3d10678a]{align-items:center;display:flex;position:relative}.pwd-wrapper input[data-v-3d10678a]{padding-right:42px}.pwd-toggle[data-v-3d10678a]{cursor:pointer;-webkit-user-select:none;user-select:none;opacity:.6;font-size:18px;position:absolute;right:12px}.pwd-toggle[data-v-3d10678a]:hover{opacity:1}.login-error[data-v-3d10678a]{color:#e74c3c;text-align:center;background:#fde8e8;border-radius:8px;margin-bottom:12px;padding:8px 12px;font-size:13px}.login-remember[data-v-3d10678a]{margin-bottom:14px}.checkbox-label[data-v-3d10678a]{color:#555;cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;font-size:13px;display:flex}.checkbox-label input[type=checkbox][data-v-3d10678a]{accent-color:#1e88e5;cursor:pointer;width:16px;height:16px}.login-btn[data-v-3d10678a]{color:#fff;cursor:pointer;background:linear-gradient(135deg,#1e3c72,#2a5298);border:none;border-radius:10px;width:100%;margin-top:4px;padding:13px;font-size:16px;font-weight:700;transition:opacity .2s}.login-btn[data-v-3d10678a]:hover{opacity:.9}.code-wrapper[data-v-3d10678a]{align-items:center;gap:8px;display:flex}.code-wrapper input[data-v-3d10678a]{box-sizing:border-box;border:2px solid #e0e0e0;border-radius:10px;flex:1;padding:11px 14px;font-size:15px;transition:border-color .2s}.code-wrapper input[data-v-3d10678a]:focus{border-color:#1e88e5;outline:none}.code-btn[data-v-3d10678a]{color:#fff;cursor:pointer;white-space:nowrap;background:linear-gradient(135deg,#1e88e5,#42a5f5);border:none;border-radius:10px;flex-shrink:0;padding:11px 14px;font-size:13px;transition:opacity .2s}.code-btn[data-v-3d10678a]:disabled{cursor:not-allowed;opacity:.7;background:#bbb}.code-btn[data-v-3d10678a]:not(:disabled):hover{opacity:.9}.sim-code[data-v-3d10678a]{color:#f39c12;text-align:center;background:#fef9e7;border-radius:8px;margin-top:16px;padding:8px 12px;font-size:13px}.app[data-v-3d10678a]{flex-direction:column;height:100vh;display:flex;overflow:hidden}.topbar[data-v-3d10678a]{background:var(--bg-card);border-bottom:1px solid var(--border);height:56px;box-shadow:var(--shadow);z-index:100;flex-shrink:0;align-items:center;gap:12px;padding:0 16px;display:flex}.logo[data-v-3d10678a]{color:var(--primary);white-space:nowrap;align-items:center;gap:6px;font-size:17px;font-weight:700;display:flex}.logo-icon[data-v-3d10678a]{font-size:22px}.topbar-info[data-v-3d10678a]{align-items:center;gap:10px;margin-left:8px;display:flex}.info-item[data-v-3d10678a]{color:var(--text-secondary);align-items:center;gap:4px;font-size:13px;display:flex}.class-btn[data-v-3d10678a]{cursor:pointer;border-radius:var(--radius-sm);padding:4px 12px;transition:all .15s}.class-btn[data-v-3d10678a]:hover{background:var(--bg-hover);color:var(--primary)}.class-name[data-v-3d10678a]{font-weight:600}.arrow[data-v-3d10678a]{color:var(--text-light);font-size:10px}.topbar-spacer[data-v-3d10678a]{flex:1}.topbar-search[data-v-3d10678a]{align-items:center;display:flex;position:relative}.topbar-search input[data-v-3d10678a]{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-page);width:200px;height:32px;padding:0 10px 0 30px}.search-icon[data-v-3d10678a]{font-size:14px;position:absolute;left:8px}.topbar-user[data-v-3d10678a]{border-left:1px solid var(--border);align-items:center;gap:8px;margin-left:12px;padding-left:12px;display:flex}.user-name[data-v-3d10678a]{color:var(--text-secondary);font-size:13px;font-weight:600}.logout-btn[data-v-3d10678a]{background:var(--red);color:#fff;border-radius:var(--radius-sm);cursor:pointer;border:none;padding:4px 12px;font-size:12px;font-weight:600;transition:opacity .15s}.logout-btn[data-v-3d10678a]:hover{opacity:.85}.main-body[data-v-3d10678a]{flex:1;display:flex;overflow:hidden}.sidebar[data-v-3d10678a]{background:var(--bg-sidebar);border-right:1px solid var(--border);flex-shrink:0;width:210px;padding:8px 0;overflow-y:auto}.nav-group-title[data-v-3d10678a]{color:var(--text-light);letter-spacing:1px;text-transform:uppercase;padding:12px 16px 4px;font-size:11px}.nav-item[data-v-3d10678a]{cursor:pointer;color:var(--text-secondary);border-left:3px solid #0000;align-items:center;gap:10px;padding:10px 16px;font-size:14px;text-decoration:none;transition:all .15s;display:flex}.nav-item[data-v-3d10678a]:hover{color:var(--text-primary);background:#1e88e514}.nav-item.active[data-v-3d10678a]{background:var(--primary-bg);color:var(--primary);border-left-color:var(--primary);font-weight:600}.nav-icon[data-v-3d10678a]{flex-shrink:0;font-size:18px}.workspace[data-v-3d10678a]{background:var(--bg-page);flex:1;padding:20px;overflow:auto}.modal-overlay[data-v-3d10678a]{z-index:9999;background:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-box[data-v-3d10678a]{background:var(--bg-card);border-radius:var(--radius);width:520px;max-width:92vw;max-height:85vh;box-shadow:var(--shadow-md);overflow-y:auto}.modal-header[data-v-3d10678a]{border-bottom:1px solid var(--border);align-items:center;padding:14px 20px;font-size:16px;font-weight:600;display:flex}.modal-close[data-v-3d10678a]{cursor:pointer;color:var(--text-light);border-radius:4px;justify-content:center;align-items:center;width:28px;height:28px;margin-left:auto;font-size:22px;display:flex}.modal-close[data-v-3d10678a]:hover{background:var(--bg-hover);color:var(--red)}.modal-body[data-v-3d10678a]{padding:16px 20px}.class-list[data-v-3d10678a]{margin-bottom:16px}.class-row[data-v-3d10678a]{border-radius:var(--radius);cursor:pointer;border:1px solid var(--border-light);align-items:center;gap:10px;margin-bottom:4px;padding:10px 14px;transition:all .15s;display:flex}.class-row[data-v-3d10678a]:hover{border-color:var(--primary);background:var(--bg-hover)}.class-row.current[data-v-3d10678a]{border-color:var(--primary);background:var(--primary-bg)}.cr-name[data-v-3d10678a]{flex:1;font-size:14px;font-weight:600}.cr-count[data-v-3d10678a]{color:var(--text-light);font-size:12px}.cr-del[data-v-3d10678a]{color:var(--text-light);cursor:pointer;border-radius:4px;padding:0 4px;font-size:18px}.cr-del[data-v-3d10678a]:hover{color:var(--red);background:#fdeaea}.new-class[data-v-3d10678a]{border-top:1px solid var(--border);padding-top:16px}.nc-title[data-v-3d10678a]{margin-bottom:10px;font-size:14px;font-weight:600}.nc-row[data-v-3d10678a]{align-items:flex-end;gap:10px;display:flex}.nc-field[data-v-3d10678a]{flex:1}.nc-field label[data-v-3d10678a]{color:var(--text-secondary);margin-bottom:4px;font-size:12px;font-weight:600;display:block}.nc-field select[data-v-3d10678a]{border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;height:34px;padding:0 8px;font-size:13px}.btn[data-v-3d10678a]{border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;border:none;padding:6px 14px;font-size:13px}.btn-primary[data-v-3d10678a]{background:var(--primary);color:#fff}.btn-primary[data-v-3d10678a]:hover{background:#1976d2}.student-portal-standalone[data-v-3d10678a]{background:var(--bg-page);min-height:100vh}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Microsoft YaHei,Segoe UI,sans-serif}html,body,#app{width:100%;height:100%}.home[data-v-4189bf0e]{padding:0}.hero[data-v-4189bf0e]{color:#fff;text-align:center;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);padding:60px 20px}.hero h1[data-v-4189bf0e]{margin-bottom:12px;font-size:2.5rem}.hero p[data-v-4189bf0e]{opacity:.9;font-size:1.1rem}.cards[data-v-4189bf0e]{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px;max-width:1200px;margin:0 auto;padding:30px;display:grid}.card[data-v-4189bf0e]{color:inherit;background:#fff;border-radius:14px;padding:28px;text-decoration:none;transition:all .3s;display:block;box-shadow:0 4px 15px #00000014}.card[data-v-4189bf0e]:hover{transform:translateY(-4px);box-shadow:0 12px 30px #00000026}.card-icon[data-v-4189bf0e]{margin-bottom:12px;font-size:2.5rem}.card h3[data-v-4189bf0e]{color:#333;margin-bottom:8px;font-size:1.15rem}.card p[data-v-4189bf0e]{color:#666;font-size:.9rem;line-height:1.6}.ws-title[data-v-3aa9acb2]{color:var(--text-primary);margin-bottom:20px;font-size:20px;font-weight:700}.stat-grid[data-v-3aa9acb2]{grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:20px;display:grid}.stat-card[data-v-3aa9acb2]{background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow);align-items:center;gap:16px;padding:20px;display:flex}.stat-icon[data-v-3aa9acb2]{border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;font-size:24px;display:flex}.stat-blue[data-v-3aa9acb2]{background:linear-gradient(135deg,#1e88e5,#42a5f5)}.stat-orange[data-v-3aa9acb2]{background:linear-gradient(135deg,#fb8c00,#ffa726)}.stat-green[data-v-3aa9acb2]{background:linear-gradient(135deg,#43a047,#66bb6a)}.stat-label[data-v-3aa9acb2]{color:var(--text-secondary);font-size:13px}.stat-value[data-v-3aa9acb2]{color:var(--text-primary);font-size:28px;font-weight:700;line-height:1.2}.two-col[data-v-3aa9acb2]{grid-template-columns:1fr 1fr;gap:16px;display:grid}.panel[data-v-3aa9acb2]{background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.panel-header[data-v-3aa9acb2]{border-bottom:1px solid var(--border-light);justify-content:space-between;align-items:center;gap:8px;padding:14px 20px;display:flex}.panel-btns[data-v-3aa9acb2]{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.panel-title[data-v-3aa9acb2]{font-size:15px;font-weight:600}.tt-wrap[data-v-3aa9acb2]{padding:12px;overflow-x:auto}.tt-table[data-v-3aa9acb2]{border-collapse:collapse;width:100%;font-size:13px}.tt-table th[data-v-3aa9acb2]{background:var(--bg-hover);text-align:center;color:var(--text-secondary);border:1px solid var(--border-light);padding:8px 6px;font-weight:600}.period-cell[data-v-3aa9acb2]{background:var(--bg-hover);text-align:center;color:var(--text-secondary);border:1px solid var(--border-light);white-space:nowrap;padding:8px 6px;font-weight:600}.lesson-cell[data-v-3aa9acb2]{text-align:center;border:1px solid var(--border-light);cursor:pointer;vertical-align:middle;min-height:48px;padding:8px 4px}.lesson-cell[data-v-3aa9acb2]:hover{background:var(--bg-hover)}.lesson-name[data-v-3aa9acb2]{color:var(--primary);font-size:13px;font-weight:600}.lesson-sub[data-v-3aa9acb2]{color:var(--text-light);margin-top:2px;font-size:11px}.empty-slot[data-v-3aa9acb2]{color:var(--text-light);font-size:18px}.has-week-diff[data-v-3aa9acb2]{background:#f3f0ff;position:relative}.has-week-diff[data-v-3aa9acb2]:hover{background:#ebe4ff}.week-diff-tag[data-v-3aa9acb2]{color:#fff;background:#7c4dff;border-radius:3px;padding:0 3px;font-size:10px;font-weight:600;line-height:16px;position:absolute;top:2px;right:2px}.week-badge[data-v-3aa9acb2]{vertical-align:middle;border-radius:10px;margin-left:8px;padding:2px 8px;font-size:12px;font-weight:600}.week-badge-sm[data-v-3aa9acb2]{padding:1px 6px;font-size:11px}.wb-odd[data-v-3aa9acb2]{color:#1565c0;background:#e3f2fd}.wb-even[data-v-3aa9acb2]{color:#c62828;background:#fce4ec}.edit-mode .lesson-cell[data-v-3aa9acb2]{cursor:pointer}.edit-mode .lesson-cell[data-v-3aa9acb2]:hover{background:var(--primary-bg)}.todo-list[data-v-3aa9acb2]{max-height:360px;padding:8px 16px;overflow-y:auto}.empty-hint[data-v-3aa9acb2]{text-align:center;color:var(--text-light);padding:30px 0;font-size:13px}.todo-item[data-v-3aa9acb2]{border-bottom:1px solid var(--border-light);align-items:flex-start;gap:10px;padding:10px 0;display:flex}.todo-item[data-v-3aa9acb2]:last-child{border-bottom:none}.todo-item.done .todo-text[data-v-3aa9acb2]{color:var(--text-light);text-decoration:line-through}.todo-check[data-v-3aa9acb2]{flex-shrink:0;align-items:center;margin-top:2px;display:flex;position:relative}.todo-check input[data-v-3aa9acb2]{cursor:pointer;width:16px;height:16px}.todo-content[data-v-3aa9acb2]{flex:1;min-width:0}.todo-text[data-v-3aa9acb2]{color:var(--text-primary);word-break:break-all;font-size:14px}.todo-meta[data-v-3aa9acb2]{align-items:center;gap:8px;margin-top:4px;display:flex}.priority-tag[data-v-3aa9acb2]{border-radius:3px;padding:1px 6px;font-size:11px;font-weight:600}.p-高[data-v-3aa9acb2]{color:var(--red);background:#fdeaea}.p-中[data-v-3aa9acb2]{color:var(--orange);background:#fff3e0}.p-低[data-v-3aa9acb2]{color:var(--green);background:#e8f5e9}.due-date[data-v-3aa9acb2]{color:var(--text-light);font-size:11px}.due-date.overdue[data-v-3aa9acb2]{color:var(--red);font-weight:600}.todo-del[data-v-3aa9acb2]{color:var(--text-light);cursor:pointer;border-radius:4px;flex-shrink:0;padding:0 4px;font-size:18px}.todo-del[data-v-3aa9acb2]:hover{color:var(--red);background:#fdeaea}.btn[data-v-3aa9acb2]{border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;border:none;padding:6px 14px;font-size:13px}.btn-sm[data-v-3aa9acb2]{padding:4px 10px;font-size:12px}.btn-primary[data-v-3aa9acb2]{background:var(--primary);color:#fff}.btn-primary[data-v-3aa9acb2]:hover{background:#1976d2}.btn-danger[data-v-3aa9acb2]{background:var(--red);color:#fff}.modal-overlay[data-v-3aa9acb2]{z-index:9999;background:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-box[data-v-3aa9acb2]{background:var(--bg-card);border-radius:var(--radius);width:640px;max-width:92vw;max-height:85vh;box-shadow:var(--shadow-md);overflow-y:auto}.modal-box.small[data-v-3aa9acb2]{width:420px}.modal-header[data-v-3aa9acb2]{border-bottom:1px solid var(--border);align-items:center;padding:14px 20px;font-size:16px;font-weight:600;display:flex}.modal-close[data-v-3aa9acb2]{cursor:pointer;color:var(--text-light);border-radius:4px;justify-content:center;align-items:center;width:28px;height:28px;margin-left:auto;font-size:22px;display:flex}.modal-close[data-v-3aa9acb2]:hover{background:var(--bg-hover);color:var(--red)}.modal-body[data-v-3aa9acb2]{padding:16px 20px}.form-group[data-v-3aa9acb2]{margin-bottom:14px}.form-group label[data-v-3aa9acb2]{color:var(--text-secondary);margin-bottom:4px;font-size:13px;font-weight:600;display:block}.form-group input[data-v-3aa9acb2],.form-group select[data-v-3aa9acb2],.form-group textarea[data-v-3aa9acb2]{border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;padding:8px 12px;font-size:13px}.form-actions[data-v-3aa9acb2]{justify-content:flex-end;gap:10px;margin-top:16px;display:flex}.import-panel[data-v-3aa9acb2]{margin-top:20px}.import-body[data-v-3aa9acb2]{padding:16px 20px}.import-desc[data-v-3aa9acb2]{color:var(--text-secondary);margin-bottom:14px;font-size:13px;line-height:1.6}.import-actions[data-v-3aa9acb2]{gap:10px;margin-bottom:14px;display:flex}.btn-purple[data-v-3aa9acb2]{color:#fff;background:#8e24aa}.btn-purple[data-v-3aa9acb2]:hover{background:#7b1fa2}.import-label[data-v-3aa9acb2]{cursor:pointer;align-items:center;display:inline-flex}.tt-import-result[data-v-3aa9acb2]{color:var(--green);background:#e8f5e9;justify-content:space-between;align-items:center;padding:8px 16px;font-size:13px;display:flex}.tt-import-result strong[data-v-3aa9acb2]{font-size:16px}.tt-import-close[data-v-3aa9acb2]{cursor:pointer;color:var(--text-light);border-radius:4px;padding:0 4px;font-size:18px}.tt-import-close[data-v-3aa9acb2]:hover{background:#00000014}.import-result[data-v-3aa9acb2]{border-radius:var(--radius-sm);color:var(--green);background:#e8f5e9;align-items:center;gap:16px;margin-bottom:14px;padding:10px 14px;font-size:13px;display:flex}.import-result strong[data-v-3aa9acb2]{font-size:18px}.result-classes[data-v-3aa9acb2]{color:var(--text-secondary);font-size:12px}.class-overview[data-v-3aa9acb2]{flex-wrap:wrap;gap:8px;display:flex}.class-tag[data-v-3aa9acb2]{background:var(--bg-hover);border:1px solid var(--border-light);border-radius:var(--radius-sm);align-items:center;gap:6px;padding:6px 12px;font-size:13px;font-weight:600;display:flex}.class-tag span[data-v-3aa9acb2]{color:var(--primary);background:var(--primary-bg);border-radius:8px;padding:1px 6px;font-size:11px}.ws-title[data-v-57794feb]{justify-content:space-between;align-items:center;margin-bottom:16px;font-size:20px;font-weight:700;display:flex}.ws-actions[data-v-57794feb]{gap:8px;display:flex}.toolbar[data-v-57794feb]{align-items:center;gap:12px;margin-bottom:16px;display:flex}.search-input[data-v-57794feb]{border:1px solid var(--border);border-radius:var(--radius-sm);width:260px;padding:7px 12px;font-size:13px}.stu-count[data-v-57794feb]{color:var(--text-light);font-size:13px}.table-wrap[data-v-57794feb]{background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}table[data-v-57794feb]{border-collapse:collapse;width:100%;font-size:13px}thead th[data-v-57794feb]{background:var(--bg-hover);text-align:left;color:var(--text-secondary);border-bottom:1px solid var(--border);padding:10px 12px;font-weight:600}tbody td[data-v-57794feb]{border-bottom:1px solid var(--border-light);padding:10px 12px}tbody tr[data-v-57794feb]:hover{background:var(--bg-hover)}.score-pos[data-v-57794feb]{color:var(--green);font-weight:700}.score-neg[data-v-57794feb]{color:var(--red);font-weight:700}.link-btn[data-v-57794feb]{color:var(--primary);cursor:pointer;background:0 0;border:none;border-radius:3px;padding:2px 6px;font-size:13px}.link-btn[data-v-57794feb]:hover{background:var(--primary-bg)}.link-btn.danger[data-v-57794feb]{color:var(--red)}.link-btn.danger[data-v-57794feb]:hover{background:#fdeaea}.empty[data-v-57794feb]{text-align:center;color:var(--text-light);padding:40px 0}.btn[data-v-57794feb]{border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;border:none;padding:6px 14px;font-size:13px}.btn-primary[data-v-57794feb]{background:var(--primary);color:#fff}.btn-primary[data-v-57794feb]:hover{background:#1976d2}.btn-default[data-v-57794feb]{background:var(--bg-card);color:var(--text-primary);border:1px solid var(--border)}.btn-default[data-v-57794feb]:hover{background:var(--bg-hover)}.import-label[data-v-57794feb]{cursor:pointer;align-items:center;display:inline-flex}.modal-overlay[data-v-57794feb]{z-index:9999;background:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-box[data-v-57794feb]{background:var(--bg-card);border-radius:var(--radius);width:520px;max-width:92vw;max-height:85vh;box-shadow:var(--shadow-md);overflow-y:auto}.modal-box.small[data-v-57794feb]{width:420px}.modal-header[data-v-57794feb]{border-bottom:1px solid var(--border);align-items:center;padding:14px 20px;font-size:16px;font-weight:600;display:flex}.modal-close[data-v-57794feb]{cursor:pointer;color:var(--text-light);border-radius:4px;justify-content:center;align-items:center;width:28px;height:28px;margin-left:auto;font-size:22px;display:flex}.modal-close[data-v-57794feb]:hover{background:var(--bg-hover);color:var(--red)}.modal-body[data-v-57794feb]{padding:16px 20px}.form-group[data-v-57794feb]{margin-bottom:14px}.form-group label[data-v-57794feb]{color:var(--text-secondary);margin-bottom:4px;font-size:13px;font-weight:600;display:block}.form-group input[data-v-57794feb],.form-group select[data-v-57794feb],.form-group textarea[data-v-57794feb]{border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;padding:8px 12px;font-size:13px}.form-actions[data-v-57794feb]{justify-content:flex-end;gap:10px;margin-top:16px;display:flex}.behavior-summary[data-v-57794feb]{gap:20px;margin-bottom:16px;display:flex}.bstat[data-v-57794feb]{border-radius:var(--radius-sm);padding:6px 14px;font-size:14px;font-weight:600}.bstat.pos[data-v-57794feb]{color:var(--green);background:#e8f5e9}.bstat.neg[data-v-57794feb]{color:var(--red);background:#fdeaea}.beh-table[data-v-57794feb]{border-collapse:collapse;width:100%;font-size:13px}.beh-table th[data-v-57794feb]{background:var(--bg-hover);text-align:left;padding:8px 10px;font-weight:600}.beh-table td[data-v-57794feb]{border-bottom:1px solid var(--border-light);padding:8px 10px}.tag-pos[data-v-57794feb]{color:var(--green);background:#e8f5e9;border-radius:3px;padding:2px 8px;font-size:12px;font-weight:600}.tag-neg[data-v-57794feb]{color:var(--red);background:#fdeaea;border-radius:3px;padding:2px 8px;font-size:12px;font-weight:600}.ws-title[data-v-6f611f92]{justify-content:space-between;align-items:center;margin-bottom:16px;font-size:20px;font-weight:700;display:flex}.ws-actions[data-v-6f611f92]{flex-wrap:wrap;gap:8px;display:flex}.toolbar[data-v-6f611f92]{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:16px;display:flex}.toolbar select[data-v-6f611f92],.toolbar input[data-v-6f611f92]{border:1px solid var(--border);border-radius:var(--radius-sm);padding:7px 10px;font-size:13px}.count-info[data-v-6f611f92]{color:var(--text-light);margin-left:auto;font-size:13px}.table-wrap[data-v-6f611f92]{background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}table[data-v-6f611f92]{border-collapse:collapse;width:100%;font-size:13px}thead th[data-v-6f611f92]{background:var(--bg-hover);text-align:left;color:var(--text-secondary);border-bottom:1px solid var(--border);-webkit-user-select:none;user-select:none;padding:10px 12px;font-weight:600}thead th.th-sortable[data-v-6f611f92]{cursor:pointer}thead th.th-sortable[data-v-6f611f92]:hover{background:var(--border-light);color:var(--primary)}.sort-icon[data-v-6f611f92]{opacity:.5;margin-left:2px;font-size:12px}.th-sortable:hover .sort-icon[data-v-6f611f92],.sort-icon[data-v-6f611f92]:not(:empty){opacity:1}th.th-check[data-v-6f611f92],td.td-check[data-v-6f611f92]{text-align:center;width:36px}th.th-check input[data-v-6f611f92],td.td-check input[data-v-6f611f92]{cursor:pointer}tbody td[data-v-6f611f92]{border-bottom:1px solid var(--border-light);padding:10px 12px}tbody tr[data-v-6f611f92]:hover{background:var(--bg-hover)}tbody tr.row-selected[data-v-6f611f92]{background:#e8f0fe}tbody tr.row-selected[data-v-6f611f92]:hover{background:#d6e4f7}.tag-pos[data-v-6f611f92]{color:var(--green);background:#e8f5e9;border-radius:3px;padding:2px 8px;font-size:12px;font-weight:600}.tag-neg[data-v-6f611f92]{color:var(--red);background:#fdeaea;border-radius:3px;padding:2px 8px;font-size:12px;font-weight:600}.score-pos[data-v-6f611f92]{color:var(--green);font-weight:700}.score-neg[data-v-6f611f92]{color:var(--red);font-weight:700}.link-btn[data-v-6f611f92]{color:var(--primary);cursor:pointer;background:0 0;border:none;border-radius:3px;padding:2px 6px;font-size:13px}.link-btn[data-v-6f611f92]:hover{background:var(--primary-bg)}.link-btn.danger[data-v-6f611f92]{color:var(--red)}.link-btn.danger[data-v-6f611f92]:hover{background:#fdeaea}.empty[data-v-6f611f92]{text-align:center;color:var(--text-light);padding:40px 0}.btn[data-v-6f611f92]{border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;border:none;padding:6px 14px;font-size:13px}.btn-sm[data-v-6f611f92]{padding:4px 10px;font-size:12px}.btn[data-v-6f611f92]:disabled{opacity:.5;cursor:not-allowed}.btn-primary[data-v-6f611f92]{background:var(--primary);color:#fff}.btn-primary[data-v-6f611f92]:hover:not(:disabled){background:#1976d2}.btn-default[data-v-6f611f92]{background:var(--bg-card);color:var(--text-primary);border:1px solid var(--border)}.btn-default[data-v-6f611f92]:hover:not(:disabled){background:var(--bg-hover)}.btn-green[data-v-6f611f92]{color:#fff;background:#27ae60}.btn-green[data-v-6f611f92]:hover:not(:disabled){background:#219a52}.btn-danger-outline[data-v-6f611f92]{color:var(--red);border:1px solid var(--red);background:0 0}.btn-danger-outline[data-v-6f611f92]:hover:not(:disabled){background:#fdeaea}.import-label[data-v-6f611f92]{cursor:pointer;align-items:center;display:inline-flex}.modal-overlay[data-v-6f611f92]{z-index:9999;background:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-box[data-v-6f611f92]{background:var(--bg-card);border-radius:var(--radius);width:520px;max-width:92vw;max-height:85vh;box-shadow:var(--shadow-md);overflow-y:auto}.modal-box.small[data-v-6f611f92]{width:420px}.modal-header[data-v-6f611f92]{border-bottom:1px solid var(--border);align-items:center;padding:14px 20px;font-size:16px;font-weight:600;display:flex}.modal-close[data-v-6f611f92]{cursor:pointer;color:var(--text-light);border-radius:4px;justify-content:center;align-items:center;width:28px;height:28px;margin-left:auto;font-size:22px;display:flex}.modal-close[data-v-6f611f92]:hover{background:var(--bg-hover);color:var(--red)}.modal-body[data-v-6f611f92]{padding:16px 20px}.form-group[data-v-6f611f92]{margin-bottom:14px}.form-group label[data-v-6f611f92]{color:var(--text-secondary);margin-bottom:4px;font-size:13px;font-weight:600;display:block}.form-group input[data-v-6f611f92],.form-group select[data-v-6f611f92],.form-group textarea[data-v-6f611f92]{border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;padding:8px 12px;font-size:13px}.form-actions[data-v-6f611f92]{justify-content:flex-end;gap:10px;margin-top:16px;display:flex}.required[data-v-6f611f92]{color:var(--red)}.batch-section[data-v-6f611f92]{border-bottom:1px dashed var(--border-light);margin-bottom:16px;padding-bottom:16px}.batch-row[data-v-6f611f92]{gap:12px;display:flex}.batch-row .form-group[data-v-6f611f92]{flex:1}.batch-stu-header[data-v-6f611f92]{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.batch-stu-header label[data-v-6f611f92]{color:var(--text-secondary);font-size:13px;font-weight:600}.batch-stu-actions[data-v-6f611f92]{gap:6px;display:flex}.batch-stu-search[data-v-6f611f92]{margin-bottom:8px}.batch-stu-search input[data-v-6f611f92]{border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;padding:7px 10px;font-size:13px}.batch-stu-list[data-v-6f611f92]{border:1px solid var(--border-light);border-radius:var(--radius-sm);max-height:240px;overflow-y:auto}.batch-stu-item[data-v-6f611f92]{cursor:pointer;border-bottom:1px solid var(--border-light);align-items:center;gap:8px;padding:8px 12px;transition:all .1s;display:flex}.batch-stu-item[data-v-6f611f92]:last-child{border-bottom:none}.batch-stu-item[data-v-6f611f92]:hover{background:var(--bg-hover)}.batch-stu-item.checked[data-v-6f611f92]{background:#e8f0fe}.batch-stu-item input[data-v-6f611f92]{cursor:pointer}.batch-stu-name[data-v-6f611f92]{flex:1;font-size:13px}.batch-stu-id[data-v-6f611f92]{color:var(--text-light);font-family:monospace;font-size:11px}.ws-title[data-v-141e1b60]{justify-content:space-between;align-items:center;margin-bottom:16px;font-size:20px;font-weight:700;display:flex}.ws-actions[data-v-141e1b60]{gap:8px;display:flex}.seat-layout[data-v-141e1b60]{gap:20px;display:flex}.unassigned-panel[data-v-141e1b60]{background:var(--bg-card);border-radius:var(--radius);width:200px;box-shadow:var(--shadow);flex-shrink:0;overflow:hidden}.panel-title[data-v-141e1b60]{border-bottom:1px solid var(--border-light);background:var(--bg-hover);padding:12px 16px;font-size:14px;font-weight:600}.student-pool[data-v-141e1b60]{max-height:650px;padding:8px;overflow-y:auto}.drag-student[data-v-141e1b60]{border-radius:var(--radius-sm);cursor:grab;background:var(--bg-hover);border:1px solid var(--border-light);justify-content:space-between;align-items:center;margin-bottom:4px;padding:8px 10px;transition:all .15s;display:flex}.drag-student[data-v-141e1b60]:hover{border-color:var(--primary);background:var(--primary-bg)}.drag-student[data-v-141e1b60]:active{cursor:grabbing}.ds-name[data-v-141e1b60]{font-size:13px;font-weight:600}.ds-id[data-v-141e1b60]{color:var(--text-light);font-size:11px}.empty-hint[data-v-141e1b60]{text-align:center;color:var(--text-light);padding:20px 0;font-size:13px}.canvas-panel[data-v-141e1b60]{background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;flex:1;display:flex;overflow:hidden}.canvas-toolbar[data-v-141e1b60]{border-bottom:1px solid var(--border-light);align-items:center;gap:12px;padding:10px 16px;display:flex}.hint[data-v-141e1b60]{color:var(--text-light);font-size:12px}.podium[data-v-141e1b60]{text-align:center;background:linear-gradient(135deg, var(--primary), #42a5f5);color:#fff;letter-spacing:8px;border-radius:var(--radius-sm);margin:12px 16px 0;padding:10px;font-size:16px;font-weight:700}.canvas-area[data-v-141e1b60]{flex:1;min-height:500px;margin:12px 16px 16px;position:relative}.seat-box[data-v-141e1b60]{border:2px dashed var(--border);border-radius:var(--radius);cursor:default;flex-direction:column;align-items:center;width:80px;transition:border-color .15s,background .15s,box-shadow .15s;display:flex;position:absolute}.seat-handle[data-v-141e1b60]{text-align:center;cursor:grab;border-radius:var(--radius) var(--radius) 0 0;-webkit-user-select:none;user-select:none;background:#0000000a;flex-shrink:0;width:100%;padding:2px 0}.seat-handle[data-v-141e1b60]:hover{background:#1e88e51f}.seat-handle[data-v-141e1b60]:active{cursor:grabbing;background:#1e88e533}.handle-dots[data-v-141e1b60]{color:var(--text-light);letter-spacing:2px;font-size:12px;line-height:1}.seat-box[data-v-141e1b60]:hover{border-color:var(--primary);box-shadow:0 2px 8px #1e88e526}.seat-box.occupied[data-v-141e1b60]{border-style:solid;border-color:var(--primary);background:var(--primary-bg)}.seat-box.drag-over[data-v-141e1b60]{border-color:var(--green);background:#e8f5e9;transform:scale(1.08);box-shadow:0 4px 16px #43a04740}.seat-box.moving[data-v-141e1b60]{opacity:.7;z-index:100;border-color:var(--orange)}.seat-empty-inner[data-v-141e1b60]{border-radius:var(--radius-sm);flex:1;justify-content:center;align-items:center;width:100%;padding:4px 0;display:flex}.seat-label[data-v-141e1b60]{color:var(--text-light);font-size:12px;font-weight:600}.seat-student[data-v-141e1b60]{cursor:grab;flex-direction:column;flex:1;justify-content:center;align-items:center;width:100%;padding:4px 0;display:flex;position:relative}.seat-student[data-v-141e1b60]:active{cursor:grabbing}.ss-name[data-v-141e1b60]{color:var(--primary);font-size:12px;font-weight:600}.ss-id[data-v-141e1b60]{color:var(--text-light);font-size:10px}.seat-remove[data-v-141e1b60]{background:var(--red);color:#fff;cursor:pointer;opacity:0;z-index:10;border-radius:50%;justify-content:center;align-items:center;width:18px;height:18px;font-size:12px;transition:all .15s;display:flex;position:absolute;top:-6px;right:-6px}.seat-box:hover .seat-remove[data-v-141e1b60]{opacity:1}.seat-clear[data-v-141e1b60]{background:var(--orange);color:#fff;cursor:pointer;opacity:0;z-index:10;border-radius:50%;justify-content:center;align-items:center;width:16px;height:16px;font-size:9px;transition:all .15s;display:flex;position:absolute;bottom:-4px;right:-4px}.seat-box:hover .seat-clear[data-v-141e1b60]{opacity:1}.btn[data-v-141e1b60]{border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;border:none;padding:6px 14px;font-size:13px}.btn-sm[data-v-141e1b60]{padding:4px 10px;font-size:12px}.btn-primary[data-v-141e1b60]{background:var(--primary);color:#fff}.btn-primary[data-v-141e1b60]:hover{background:#1976d2}.btn-default[data-v-141e1b60]{background:var(--bg-card);color:var(--text-primary);border:1px solid var(--border)}.btn-default[data-v-141e1b60]:hover{background:var(--bg-hover)}.btn-danger[data-v-141e1b60]{background:var(--red);color:#fff}.import-label[data-v-141e1b60]{cursor:pointer;align-items:center;display:inline-flex}.hc-header[data-v-6d5bf3f5]{color:#fff;background:linear-gradient(135deg,#2c3e50 0%,#3498db 100%);border-radius:12px;margin-bottom:20px;padding:20px 28px}.hc-header h1[data-v-6d5bf3f5]{margin:0 0 6px;font-size:20px}.hc-subtitle[data-v-6d5bf3f5]{opacity:.9;margin:0;font-size:13px}.hc-card[data-v-6d5bf3f5]{background:var(--bg-card);box-shadow:var(--shadow);border-radius:12px;margin-bottom:20px;padding:24px}.hc-card h2[data-v-6d5bf3f5]{color:var(--text-primary);margin-bottom:16px;font-size:17px}.hc-empty[data-v-6d5bf3f5]{text-align:center;color:var(--text-light);padding:30px}.hc-empty-inline[data-v-6d5bf3f5]{text-align:center;color:var(--text-light);padding:20px}.hw-select-grid[data-v-6d5bf3f5]{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;display:grid}.hw-select-item[data-v-6d5bf3f5]{border:2px solid var(--border);cursor:pointer;border-radius:10px;padding:14px 16px;transition:all .2s}.hw-select-item[data-v-6d5bf3f5]:hover{border-color:var(--primary);background:var(--bg-hover)}.hw-select-item.active[data-v-6d5bf3f5]{border-color:var(--primary);background:var(--primary-bg);box-shadow:0 2px 8px #1e88e526}.hw-select-item.synced[data-v-6d5bf3f5]{border-color:#b7eb8f}.hw-select-title[data-v-6d5bf3f5]{margin-bottom:4px;font-size:14px;font-weight:600}.hw-select-meta[data-v-6d5bf3f5]{color:var(--primary);font-size:12px;font-weight:600}.hw-select-date[data-v-6d5bf3f5]{color:var(--text-light);margin-top:4px;font-size:11px}.hc-result-header[data-v-6d5bf3f5]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:16px;display:flex}.hc-result-header h2[data-v-6d5bf3f5]{margin-bottom:0}.hc-actions[data-v-6d5bf3f5]{gap:8px;display:flex}.hc-stats-row[data-v-6d5bf3f5]{gap:12px;margin-bottom:16px;display:flex}.hc-stat[data-v-6d5bf3f5]{text-align:center;border-radius:10px;flex:1;padding:16px 12px}.hc-stat-total[data-v-6d5bf3f5]{background:#f0f5ff;border:1px solid #adc6ff}.hc-stat-submitted[data-v-6d5bf3f5]{background:#f0fff4;border:1px solid #b7eb8f}.hc-stat-not[data-v-6d5bf3f5]{background:#fff2f0;border:1px solid #ffccc7}.hc-stat-num[data-v-6d5bf3f5]{font-size:28px;font-weight:700;line-height:1.2;display:block}.hc-stat-label[data-v-6d5bf3f5]{color:var(--text-secondary);margin-top:4px;font-size:12px}.hc-score-info[data-v-6d5bf3f5]{color:var(--text-secondary);background:#fffbe6;border:1px solid #ffe58f;border-radius:8px;margin-bottom:16px;padding:12px 16px;font-size:13px;line-height:1.6}.hc-score-done[data-v-6d5bf3f5]{background:#f0fff4;border-color:#b7eb8f}.hc-tabs[data-v-6d5bf3f5]{border-bottom:2px solid var(--border-light);gap:0;margin-bottom:12px;display:flex}.hc-tab[data-v-6d5bf3f5]{cursor:pointer;color:var(--text-secondary);background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-2px;padding:10px 18px;font-size:13px;transition:all .15s}.hc-tab[data-v-6d5bf3f5]:hover{color:var(--primary)}.hc-tab.active[data-v-6d5bf3f5]{color:var(--primary);border-bottom-color:var(--primary);font-weight:600}.hc-list[data-v-6d5bf3f5]{max-height:500px;overflow-y:auto}.hc-list-item[data-v-6d5bf3f5]{border-left:3px solid #0000;border-radius:8px;align-items:center;gap:10px;margin-bottom:6px;padding:10px 14px;display:flex}.hc-list-item.hc-ok[data-v-6d5bf3f5]{background:#f0fff4;border-left-color:#52c41a}.hc-list-item.hc-fail[data-v-6d5bf3f5]{background:#fff2f0;border-left-color:#ff4d4f}.hc-sid[data-v-6d5bf3f5]{min-width:90px;color:var(--text-primary);font-family:monospace;font-size:13px;font-weight:600}.hc-name[data-v-6d5bf3f5]{flex:1;font-size:13px}.hc-status-icon[data-v-6d5bf3f5]{font-size:16px}.hc-status-text[data-v-6d5bf3f5]{color:var(--text-secondary);min-width:50px;font-size:12px}.hc-time[data-v-6d5bf3f5]{color:var(--text-light);min-width:70px;font-size:11px}.hc-score-tag[data-v-6d5bf3f5]{border-radius:12px;padding:2px 10px;font-size:12px;font-weight:700}.score-pos[data-v-6d5bf3f5]{color:#2e7d32;background:#e8f5e9}.score-neg[data-v-6d5bf3f5]{color:#c62828;background:#fde8e8}.hw-btn[data-v-6d5bf3f5]{cursor:pointer;border:none;border-radius:6px;padding:8px 18px;font-size:13px;font-weight:500;transition:all .15s}.hw-btn[data-v-6d5bf3f5]:disabled{opacity:.6;cursor:not-allowed}.hw-btn-green[data-v-6d5bf3f5]{color:#fff;background:#27ae60}.hw-btn-green[data-v-6d5bf3f5]:hover:not(:disabled){background:#219a52}.hw-btn-blue[data-v-6d5bf3f5]{color:#fff;background:#3498db}.hw-btn-blue[data-v-6d5bf3f5]:hover{background:#2980b9}.synced-badge[data-v-6d5bf3f5]{color:#fff;vertical-align:middle;background:#27ae60;border-radius:8px;margin-left:4px;padding:1px 6px;font-size:10px;font-weight:600;display:inline-block}.hw-header[data-v-6beaef7c]{color:#fff;background:linear-gradient(135deg,#2c3e50 0%,#3498db 100%);border-radius:12px;margin-bottom:20px;padding:20px 30px}.hw-header h1[data-v-6beaef7c]{margin:0;font-size:22px}.hw-tabs[data-v-6beaef7c]{background:var(--bg-card);box-shadow:var(--shadow);border-radius:10px 10px 0 0;gap:0;margin-bottom:20px;display:flex;overflow:hidden}.hw-tab[data-v-6beaef7c]{cursor:pointer;color:var(--text-secondary);background:0 0;border:none;border-bottom:3px solid #0000;flex:1;padding:14px 20px;font-size:14px;font-weight:600;transition:all .2s}.hw-tab[data-v-6beaef7c]:hover{color:var(--primary);background:var(--bg-hover)}.hw-tab.active[data-v-6beaef7c]{color:var(--primary);border-bottom-color:var(--primary);background:var(--primary-bg)}.hw-card-panel[data-v-6beaef7c]{background:var(--bg-card);box-shadow:var(--shadow);border-radius:12px;padding:28px}.hw-card-panel h2[data-v-6beaef7c]{color:var(--text-primary);margin-bottom:20px;font-size:18px}.fg[data-v-6beaef7c]{margin-bottom:16px}.fg label[data-v-6beaef7c]{color:var(--text-secondary);margin-bottom:6px;font-size:13px;font-weight:600;display:block}.fg input[data-v-6beaef7c],.fg textarea[data-v-6beaef7c],.fg select[data-v-6beaef7c]{border:2px solid var(--border);box-sizing:border-box;border-radius:8px;width:100%;padding:10px 14px;font-family:inherit;font-size:14px}.fg input[data-v-6beaef7c]:focus,.fg textarea[data-v-6beaef7c]:focus,.fg select[data-v-6beaef7c]:focus{border-color:var(--primary);outline:none}.hw-btn[data-v-6beaef7c]{cursor:pointer;border:none;border-radius:6px;padding:8px 18px;font-size:13px;font-weight:500;transition:all .15s}.hw-btn-sm[data-v-6beaef7c]{padding:5px 12px;font-size:12px}.hw-btn-full[data-v-6beaef7c]{width:100%;padding:13px;font-size:15px}.hw-btn-primary[data-v-6beaef7c]{color:#fff;background:linear-gradient(135deg,#2c3e50,#3498db)}.hw-btn-primary[data-v-6beaef7c]:hover{opacity:.9}.hw-btn-blue[data-v-6beaef7c]{color:#fff;background:#3498db}.hw-btn-blue[data-v-6beaef7c]:hover{background:#2980b9}.hw-btn-red[data-v-6beaef7c]{color:#fff;background:#e74c3c}.hw-btn-red[data-v-6beaef7c]:hover{background:#c0392b}.hw-btn-green[data-v-6beaef7c]{color:#fff;background:#27ae60}.hw-btn-green[data-v-6beaef7c]:hover{background:#219a52}.hw-btn-orange[data-v-6beaef7c]{color:#fff;background:#e67e22}.hw-btn-orange[data-v-6beaef7c]:hover{background:#d35400}.hw-btn-teal[data-v-6beaef7c]{color:#fff;background:#16a085}.hw-btn-teal[data-v-6beaef7c]:hover{background:#138d75}.hw-btn-purple[data-v-6beaef7c]{color:#fff;background:#8e44ad}.hw-btn-purple[data-v-6beaef7c]:hover{background:#7d3c98}.hw-btn-dark[data-v-6beaef7c]{color:#fff;background:#2c3e50}.hw-btn-dark[data-v-6beaef7c]:hover{background:#1a252f}.hw-btn-cancel[data-v-6beaef7c]{color:#333;float:right;background:#e0e0e0;margin-top:12px;padding:10px 24px}.hw-filter-bar[data-v-6beaef7c]{background:var(--bg-card);box-shadow:var(--shadow);border-radius:12px;margin-bottom:16px;padding:18px 24px}.hw-filter-bar h3[data-v-6beaef7c]{margin-bottom:10px;font-size:15px}.filter-row[data-v-6beaef7c]{flex-wrap:wrap;gap:10px;display:flex}.filter-row select[data-v-6beaef7c]{border:2px solid var(--border);border-radius:6px;padding:8px 14px;font-size:14px}.filter-row select[data-v-6beaef7c]:focus{border-color:var(--primary);outline:none}.hw-item[data-v-6beaef7c]{background:var(--bg-card);box-shadow:var(--shadow);border-left:4px solid var(--primary);border-radius:12px;margin-bottom:16px;padding:22px}.hw-item-header[data-v-6beaef7c]{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.hw-item-header h3[data-v-6beaef7c]{margin:0;font-size:16px}.hw-badge[data-v-6beaef7c]{background:var(--primary);color:#fff;border-radius:20px;padding:4px 14px;font-size:12px;font-weight:600}.hw-desc[data-v-6beaef7c]{color:var(--text-secondary);margin-bottom:8px;font-size:13px;line-height:1.6}.hw-meta[data-v-6beaef7c]{color:var(--text-light);margin-bottom:10px;font-size:12px}.hw-criteria-status[data-v-6beaef7c]{background:#f0f7ff;border-radius:6px;align-items:center;gap:8px;margin-bottom:12px;padding:8px 12px;font-size:13px;display:flex}.criteria-uploaded[data-v-6beaef7c]{color:var(--green);font-weight:600}.hw-item-actions[data-v-6beaef7c]{flex-wrap:wrap;gap:8px;display:flex}.hw-empty[data-v-6beaef7c]{text-align:center;color:var(--text-light);padding:50px 20px}.empty-icon[data-v-6beaef7c]{margin-bottom:12px;font-size:48px}.hw-empty-inline[data-v-6beaef7c]{text-align:center;color:var(--text-light);padding:20px}.hw-hint[data-v-6beaef7c]{color:var(--text-secondary);margin-bottom:16px;font-size:14px}.hw-count[data-v-6beaef7c]{color:var(--text-secondary);margin-bottom:12px;font-size:13px}.hw-modal-overlay[data-v-6beaef7c]{z-index:1000;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.hw-modal[data-v-6beaef7c]{background:var(--bg-card);border-radius:14px;width:90%;max-width:550px;max-height:85vh;padding:30px;overflow-y:auto;box-shadow:0 20px 60px #0000004d}.hw-modal-lg[data-v-6beaef7c]{max-width:750px}.hw-modal h2[data-v-6beaef7c]{margin-bottom:16px;font-size:18px}.hw-modal-toolbar[data-v-6beaef7c]{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:16px;display:flex}.hw-select-compact[data-v-6beaef7c]{border:1px solid var(--border);border-radius:4px;padding:6px 10px;font-size:13px}.sub-item[data-v-6beaef7c]{border:1px solid var(--border-light);border-radius:10px;margin-bottom:14px;padding:16px}.sub-header[data-v-6beaef7c]{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.sub-student[data-v-6beaef7c]{color:var(--text-primary);font-size:14px;font-weight:600}.sub-time[data-v-6beaef7c]{color:var(--text-light);font-size:13px}.sub-content[data-v-6beaef7c]{color:var(--text-secondary);background:var(--bg-hover);white-space:pre-wrap;border-radius:6px;max-height:200px;margin-bottom:12px;padding:12px;font-size:13px;line-height:1.7;overflow-y:auto}.sub-grade-section[data-v-6beaef7c]{border-top:1px solid var(--border-light);margin-top:8px;padding-top:12px}.grade-display[data-v-6beaef7c]{border-radius:8px;margin-bottom:10px;padding:12px 16px}.grade-display.level-A[data-v-6beaef7c]{background:#e8f8f0;border-left:4px solid #27ae60}.grade-display.level-B[data-v-6beaef7c]{background:#e8f4fd;border-left:4px solid #3498db}.grade-display.level-C[data-v-6beaef7c]{background:#fff9e6;border-left:4px solid #f39c12}.grade-display.level-D[data-v-6beaef7c]{background:#fde8e8;border-left:4px solid #e74c3c}.grade-level-badge[data-v-6beaef7c]{color:#fff;border-radius:4px;margin-right:8px;padding:3px 12px;font-size:15px;font-weight:700;display:inline-block}.grade-level-badge.A[data-v-6beaef7c]{background:#27ae60}.grade-level-badge.B[data-v-6beaef7c]{background:#3498db}.grade-level-badge.C[data-v-6beaef7c]{background:#f39c12}.grade-level-badge.D[data-v-6beaef7c]{background:#e74c3c}.grade-level-text[data-v-6beaef7c]{color:var(--text-secondary);font-size:13px}.grade-comment-text[data-v-6beaef7c]{color:var(--text-secondary);margin-top:6px;font-size:13px;line-height:1.6}.grade-time-text[data-v-6beaef7c]{color:var(--text-light);margin-top:4px;font-size:11px}.grade-form-row[data-v-6beaef7c]{flex-wrap:wrap;align-items:flex-end;gap:10px;display:flex}.grade-field[data-v-6beaef7c]{flex:0 0 120px}.grade-field label[data-v-6beaef7c]{color:var(--text-secondary);margin-bottom:4px;font-size:12px;display:block}.grade-field select[data-v-6beaef7c],.grade-field input[data-v-6beaef7c]{border:2px solid var(--border);border-radius:6px;width:100%;padding:8px 10px;font-size:14px}.grade-field select[data-v-6beaef7c]:focus,.grade-field input[data-v-6beaef7c]:focus{border-color:var(--primary);outline:none}.grade-field-wide[data-v-6beaef7c]{flex:1;min-width:150px}.criteria-info[data-v-6beaef7c]{background:var(--bg-hover);border-radius:8px;margin-bottom:14px;padding:12px;font-size:13px}.criteria-time[data-v-6beaef7c]{color:var(--text-light);margin-top:4px;font-size:12px}.criteria-preview[data-v-6beaef7c]{background:var(--bg-hover);max-height:200px;color:var(--text-secondary);white-space:pre-wrap;border:1px solid var(--border);border-radius:8px;margin-bottom:14px;padding:14px;font-size:13px;line-height:1.7;overflow-y:auto}.criteria-upload-area[data-v-6beaef7c]{border:2px dashed var(--border);text-align:center;cursor:pointer;border-radius:12px;padding:24px 16px;transition:border-color .2s,background .2s}.criteria-upload-area[data-v-6beaef7c]:hover{border-color:var(--primary);background:var(--bg-hover)}.upload-icon[data-v-6beaef7c]{margin-bottom:8px;font-size:32px}.upload-hint[data-v-6beaef7c]{color:var(--text-light);margin-top:4px;font-size:12px}.hw-pwd-status[data-v-6beaef7c]{background:#fff8e1;border-radius:6px;align-items:center;gap:8px;margin-bottom:12px;padding:8px 12px;font-size:13px;display:flex}.hw-pwd-status strong[data-v-6beaef7c]{color:#e65100;letter-spacing:1px;font-family:monospace}.hw-pwd-hint[data-v-6beaef7c]{color:#999;font-size:12px}.sub-attachments[data-v-6beaef7c]{background:#f8f9ff;border:1px solid #e8ecf4;border-radius:8px;margin-top:10px;padding:10px}.sub-att-title[data-v-6beaef7c]{color:#555;margin-bottom:8px;font-size:13px;font-weight:600}.sub-att-list[data-v-6beaef7c]{flex-direction:column;gap:6px;display:flex}.sub-att-item[data-v-6beaef7c]{background:#fff;border:1px solid #eee;border-radius:6px;align-items:center;gap:8px;padding:6px 10px;display:flex}.sub-att-item .att-icon[data-v-6beaef7c]{font-size:16px}.sub-att-item .att-name[data-v-6beaef7c]{color:#333;text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:13px;overflow:hidden}.sub-att-item .att-size[data-v-6beaef7c]{color:#999;font-size:11px}.modal-btn-row[data-v-6beaef7c]{justify-content:flex-end;gap:10px;margin-top:20px;display:flex}.batch-dl-options[data-v-6beaef7c]{margin-bottom:16px}.batch-stu-list[data-v-6beaef7c]{border:1px solid var(--border);border-radius:8px;max-height:200px;margin-bottom:12px;padding:8px;overflow-y:auto}.batch-stu-item[data-v-6beaef7c]{cursor:pointer;border-radius:4px;align-items:center;gap:6px;padding:4px 8px;font-size:13px;display:flex}.batch-stu-item[data-v-6beaef7c]:hover{background:var(--bg-hover)}.batch-stu-item input[data-v-6beaef7c]{cursor:pointer}.page[data-v-fde47387]{background:linear-gradient(135deg,#1e3c72 0%,#2a5298 100%);min-height:100vh;padding:30px 20px}.header[data-v-fde47387]{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.header h1[data-v-fde47387]{color:#fff;margin:0;font-size:26px}.card[data-v-fde47387]{background:#fff;border-radius:14px;margin-bottom:20px;padding:24px;box-shadow:0 10px 40px #00000026}.card h2[data-v-fde47387]{color:#333;margin:0 0 14px;font-size:18px}.stats-row[data-v-fde47387]{gap:14px;margin-bottom:20px;display:flex}.stat-card[data-v-fde47387]{text-align:center;background:#fff;border-radius:14px;flex:1;padding:20px;box-shadow:0 10px 40px #00000026}.stat-num[data-v-fde47387]{margin-bottom:6px;font-size:36px;font-weight:700;line-height:1}.stat-total .stat-num[data-v-fde47387]{color:#2a5298}.stat-ontime .stat-num[data-v-fde47387]{color:#27ae60}.stat-absent .stat-num[data-v-fde47387]{color:#e74c3c}.stat-miss .stat-num[data-v-fde47387]{color:#e67e22}.stat-label[data-v-fde47387]{color:#666;font-size:13px}.action-bar[data-v-fde47387]{flex-wrap:wrap;gap:12px;margin-bottom:20px;display:flex}.btn[data-v-fde47387]{cursor:pointer;border:none;border-radius:8px;padding:9px 20px;font-size:13px;font-weight:600}.btn-sm[data-v-fde47387]{padding:6px 14px;font-size:12px}.btn-primary[data-v-fde47387]{color:#fff;background:#2a5298}.btn-primary[data-v-fde47387]:hover{background:#1e3c72}.btn-export[data-v-fde47387]{color:#fff;background:#27ae60}.btn-refresh[data-v-fde47387]{color:#fff;background:#3498db}.btn-sync[data-v-fde47387]{color:#fff;background:#e67e22}.btn-sync[data-v-fde47387]:hover{background:#d35400}.btn-import-att[data-v-fde47387]{color:#fff;cursor:pointer;background:#8e44ad;align-items:center;display:inline-flex}.btn-import-att[data-v-fde47387]:hover{background:#7d3c98}.import-hint[data-v-fde47387]{color:#ffffffb3;margin-bottom:16px;font-size:13px}.import-result-bar[data-v-fde47387]{color:#6c3483;background:#f5f0ff;border:1px solid #d7bde2;border-radius:8px;justify-content:space-between;align-items:center;margin-bottom:16px;padding:12px 16px;font-size:13px;display:flex}.btn-close-result[data-v-fde47387]{color:#6c3483;cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:16px}.btn-cancel[data-v-fde47387]{color:#333;background:#e0e0e0}.btn-danger[data-v-fde47387]{color:#fff;background:#e74c3c}.hint[data-v-fde47387]{color:#999;margin:8px 0;font-style:italic}.data-table[data-v-fde47387]{border-collapse:collapse;width:100%;font-size:13px}.data-table th[data-v-fde47387]{text-align:left;color:#555;background:#f5f7fa;border-bottom:2px solid #e8e8e8;padding:10px 12px;font-weight:600}.data-table td[data-v-fde47387]{border-bottom:1px solid #f0f0f0;padding:10px 12px}.data-table tr[data-v-fde47387]:hover{background:#fafbfc}.score-plus[data-v-fde47387]{color:#27ae60;font-size:16px;font-weight:700}.score-minus[data-v-fde47387]{color:#e74c3c;font-size:16px;font-weight:700}.tools-header[data-v-e58b4d07]{color:#fff;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border-radius:12px;margin-bottom:24px;padding:20px 28px}.tools-header h1[data-v-e58b4d07]{margin:0 0 6px;font-size:22px}.tools-subtitle[data-v-e58b4d07]{opacity:.9;margin:0;font-size:13px}.tools-grid[data-v-e58b4d07]{grid-template-columns:1fr 1fr;gap:20px;display:grid}.tool-card[data-v-e58b4d07]{background:var(--bg-card);box-shadow:var(--shadow);text-align:center;border-radius:12px;padding:24px}.tool-card h2[data-v-e58b4d07]{color:var(--text-primary);margin-bottom:16px;font-size:16px}.tool-icon[data-v-e58b4d07]{margin-bottom:8px;font-size:40px}.countdown-display[data-v-e58b4d07]{margin-bottom:16px}.countdown-text[data-v-e58b4d07]{color:var(--primary);letter-spacing:3px;font-family:Consolas,Courier New,monospace;font-size:56px;font-weight:700}.countdown-warn .countdown-text[data-v-e58b4d07]{color:var(--orange);animation:1s ease-in-out infinite blink-e58b4d07}.countdown-done .countdown-text[data-v-e58b4d07]{color:var(--red);animation:.5s ease-in-out infinite blink-e58b4d07}@keyframes blink-e58b4d07{0%,to{opacity:1}50%{opacity:.4}}.countdown-presets[data-v-e58b4d07]{flex-wrap:wrap;justify-content:center;gap:8px;margin-bottom:16px;display:flex}.preset-btn[data-v-e58b4d07]{border:2px solid var(--border);cursor:pointer;color:var(--text-secondary);background:0 0;border-radius:20px;padding:6px 14px;font-size:13px;transition:all .15s}.preset-btn[data-v-e58b4d07]:hover{border-color:var(--primary);color:var(--primary)}.preset-btn.active[data-v-e58b4d07]{border-color:var(--primary);background:var(--primary-bg);color:var(--primary);font-weight:600}.custom-time[data-v-e58b4d07]{align-items:center;gap:4px;display:flex}.custom-input[data-v-e58b4d07]{border:2px solid var(--border);text-align:center;border-radius:20px;width:60px;padding:6px 8px;font-size:13px}.custom-input[data-v-e58b4d07]:focus{border-color:var(--primary);outline:none}.custom-label[data-v-e58b4d07]{color:var(--text-light);font-size:12px}.stopwatch-display[data-v-e58b4d07]{margin-bottom:16px}.stopwatch-text[data-v-e58b4d07]{color:var(--green);letter-spacing:3px;font-family:Consolas,Courier New,monospace;font-size:56px;font-weight:700}.random-display[data-v-e58b4d07]{justify-content:center;align-items:center;min-height:80px;margin-bottom:16px;display:flex}.random-name[data-v-e58b4d07]{color:var(--primary);font-size:32px;font-weight:700}.random-rolling .random-name[data-v-e58b4d07]{animation:.1s infinite shake-e58b4d07}@keyframes shake-e58b4d07{0%,to{transform:translate(0)}50%{transform:translate(3px)}}.tool-actions[data-v-e58b4d07]{justify-content:center;gap:10px;margin-bottom:12px;display:flex}.tool-btn[data-v-e58b4d07]{cursor:pointer;border:none;border-radius:8px;padding:10px 24px;font-size:14px;font-weight:600;transition:all .15s}.tool-btn[data-v-e58b4d07]:disabled{opacity:.5;cursor:not-allowed}.tool-btn-start[data-v-e58b4d07]{color:#fff;background:linear-gradient(135deg,#27ae60,#2ecc71)}.tool-btn-start[data-v-e58b4d07]:hover:not(:disabled){box-shadow:0 4px 12px #27ae604d}.tool-btn-pause[data-v-e58b4d07]{color:#fff;background:linear-gradient(135deg,#f39c12,#e67e22)}.tool-btn-reset[data-v-e58b4d07]{color:#333;background:#e0e0e0}.tool-btn-reset[data-v-e58b4d07]:hover{background:#d0d0d0}.tool-hint[data-v-e58b4d07]{color:var(--text-light);margin:0;font-size:12px}.group-config[data-v-e58b4d07]{color:var(--text-secondary);justify-content:center;align-items:center;gap:8px;margin-bottom:16px;font-size:14px;display:flex}.group-input[data-v-e58b4d07]{border:2px solid var(--border);text-align:center;border-radius:8px;width:60px;padding:8px;font-size:16px;font-weight:600}.group-input[data-v-e58b4d07]:focus{border-color:var(--primary);outline:none}.groups-result[data-v-e58b4d07]{text-align:left;max-height:240px;margin-top:12px;overflow-y:auto}.group-item[data-v-e58b4d07]{background:var(--bg-hover);border-radius:8px;margin-bottom:8px;padding:10px 14px}.group-title[data-v-e58b4d07]{color:var(--primary);margin-bottom:4px;font-size:13px;font-weight:600}.group-members[data-v-e58b4d07]{color:var(--text-secondary);font-size:13px;line-height:1.6}.ws-title[data-v-5b841ac2]{align-items:center;gap:8px;margin-bottom:16px;font-size:18px;font-weight:700;display:flex}.ws-actions[data-v-5b841ac2]{margin-left:auto}.sync-card[data-v-5b841ac2]{background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:16px;padding:20px 24px}.sync-card h3[data-v-5b841ac2]{color:var(--text-primary);margin-bottom:8px;font-size:16px}.desc[data-v-5b841ac2]{color:var(--text-secondary);margin-bottom:14px;font-size:13px;line-height:1.6}.form-group[data-v-5b841ac2]{margin-bottom:14px}.form-group label[data-v-5b841ac2]{color:var(--text-secondary);margin-bottom:4px;font-size:13px;font-weight:600;display:block}.form-group input[data-v-5b841ac2]{border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;height:38px;padding:0 12px;font-size:14px}.form-group input[data-v-5b841ac2]:focus{border-color:var(--primary);outline:none}.hint[data-v-5b841ac2]{color:var(--text-light);font-size:12px;font-weight:400}.btn-row[data-v-5b841ac2]{flex-wrap:wrap;gap:10px;margin-top:4px;display:flex}.btn[data-v-5b841ac2]{border-radius:var(--radius-sm);cursor:pointer;border:none;padding:8px 18px;font-size:13px;font-weight:600;transition:opacity .15s}.btn[data-v-5b841ac2]:hover{opacity:.85}.btn[data-v-5b841ac2]:disabled{opacity:.5;cursor:not-allowed}.btn-primary[data-v-5b841ac2]{background:var(--primary);color:#fff}.btn-danger[data-v-5b841ac2]{background:var(--red);color:#fff}.btn-upload[data-v-5b841ac2]{background:var(--green);color:#fff}.btn-download[data-v-5b841ac2]{background:var(--purple);color:#fff}.sync-info[data-v-5b841ac2]{color:var(--text-secondary);background:var(--bg-page);border-radius:var(--radius-sm);margin-top:12px;padding:8px 12px;font-size:13px}.msg-box[data-v-5b841ac2]{border-radius:var(--radius);margin-bottom:16px;padding:12px 16px;font-size:14px;font-weight:500}.msg-ok[data-v-5b841ac2]{color:#2e7d32;background:#e8f5e9;border:1px solid #c8e6c9}.msg-err[data-v-5b841ac2]{color:#c62828;background:#fdeaea;border:1px solid #f5c6cb}.student-portal[data-v-0d9c7f60]{max-width:900px;margin:0 auto;padding:20px}.login-container[data-v-0d9c7f60]{justify-content:center;align-items:center;min-height:60vh;display:flex}.login-card[data-v-0d9c7f60]{text-align:center;background:#fff;border-radius:16px;width:100%;max-width:420px;padding:40px;box-shadow:0 4px 20px #0000001a}.login-icon[data-v-0d9c7f60]{margin-bottom:12px;font-size:56px}.login-card h2[data-v-0d9c7f60]{color:#333;margin-bottom:8px}.subtitle[data-v-0d9c7f60]{color:#888;margin-bottom:24px;font-size:14px}.form-group[data-v-0d9c7f60]{text-align:left;margin-bottom:16px}.form-group label[data-v-0d9c7f60]{color:#333;margin-bottom:6px;font-size:13px;font-weight:600;display:block}.form-group input[data-v-0d9c7f60],.form-group textarea[data-v-0d9c7f60]{box-sizing:border-box;border:2px solid #e0e0e0;border-radius:10px;width:100%;padding:11px 14px;font-size:15px;transition:border-color .2s}.form-group input[data-v-0d9c7f60]:focus,.form-group textarea[data-v-0d9c7f60]:focus{border-color:#1e88e5;outline:none}.form-group input.readonly[data-v-0d9c7f60]{color:#666;cursor:not-allowed;background:#f5f5f5}.login-btn[data-v-0d9c7f60]{color:#fff;cursor:pointer;background:linear-gradient(135deg,#1e3c72,#2a5298);border:none;border-radius:10px;width:100%;margin-top:8px;padding:13px;font-size:16px;font-weight:700;transition:opacity .2s}.login-btn[data-v-0d9c7f60]:hover{opacity:.9}.error-msg[data-v-0d9c7f60]{color:#e74c3c;text-align:center;background:#fde8e8;border-radius:8px;margin:12px 0;padding:8px 12px;font-size:13px}.hint[data-v-0d9c7f60]{color:#999;margin-top:16px;font-size:13px}.loading-msg[data-v-0d9c7f60]{color:#1e88e5;margin-top:10px;font-size:13px}.welcome-bar[data-v-0d9c7f60]{background:#fff;border-radius:12px;justify-content:space-between;align-items:center;margin-bottom:20px;padding:16px 24px;display:flex;box-shadow:0 2px 8px #00000014}.student-info[data-v-0d9c7f60]{color:#333;font-size:15px}.student-info strong[data-v-0d9c7f60]{color:#1e88e5}.welcome-right[data-v-0d9c7f60]{align-items:center;gap:12px;display:flex}.cloud-status[data-v-0d9c7f60]{color:#43a047;background:#e8f5e9;border-radius:12px;padding:3px 10px;font-size:12px;font-weight:600}.cloud-status.loading[data-v-0d9c7f60]{color:#1e88e5;background:#e3f2fd}.detected-class[data-v-0d9c7f60]{color:#333;background:linear-gradient(135deg,#e3f2fd,#e8f5e9);border:1px solid #90caf9;border-radius:10px;align-items:center;gap:8px;margin-bottom:16px;padding:12px 16px;font-size:14px;display:flex}.detected-class strong[data-v-0d9c7f60]{color:#1e88e5;font-size:15px}.dc-icon[data-v-0d9c7f60]{font-size:20px}.logout-btn[data-v-0d9c7f60]{color:#fff;cursor:pointer;background:#ef5350;border:none;border-radius:6px;padding:8px 20px;font-size:13px}.tab-bar[data-v-0d9c7f60]{background:#fff;border-radius:12px 12px 0 0;gap:0;display:flex;overflow:hidden;box-shadow:0 2px 8px #00000014}.tab-bar button[data-v-0d9c7f60]{cursor:pointer;color:#5a6b7b;background:0 0;border:none;border-bottom:3px solid #0000;flex:1;padding:14px 20px;font-size:15px;font-weight:600;transition:all .2s}.tab-bar button[data-v-0d9c7f60]:hover{color:#1e88e5;background:#1e88e50f}.tab-bar button.active[data-v-0d9c7f60]{color:#1e88e5;background:#e3f2fd;border-bottom-color:#1e88e5}.tab-content[data-v-0d9c7f60]{background:#fff;border-radius:0 0 12px 12px;min-height:300px;padding:24px;box-shadow:0 4px 15px #0000001a}.section-title[data-v-0d9c7f60]{color:#333;margin-bottom:16px;font-size:18px;font-weight:700}.hw-list[data-v-0d9c7f60]{gap:16px;display:grid}.hw-card[data-v-0d9c7f60]{background:#fafbff;border:1px solid #e8ecf4;border-radius:12px;padding:20px;transition:box-shadow .2s}.hw-card[data-v-0d9c7f60]:hover{box-shadow:0 4px 16px #1e88e526}.hw-card h4[data-v-0d9c7f60]{color:#333;margin-bottom:8px;font-size:16px}.hw-desc[data-v-0d9c7f60]{color:#666;white-space:pre-wrap;max-height:120px;margin-bottom:10px;font-size:13px;line-height:1.6;overflow-y:auto}.hw-meta[data-v-0d9c7f60]{color:#999;justify-content:space-between;align-items:center;margin-bottom:8px;font-size:13px;display:flex}.badge[data-v-0d9c7f60]{border-radius:20px;padding:4px 12px;font-size:12px;font-weight:600}.badge-ok[data-v-0d9c7f60]{color:#155724;background:#d4edda}.badge-wait[data-v-0d9c7f60]{color:#856404;background:#fff3cd}.btn-submit[data-v-0d9c7f60]{color:#fff;cursor:pointer;background:linear-gradient(135deg,#1e88e5,#42a5f5);border:none;border-radius:6px;margin-top:10px;padding:9px 22px;font-size:14px;font-weight:600}.grade-card[data-v-0d9c7f60]{background:#fff;border-left:4px solid #ccc;border-radius:8px;margin-top:12px;padding:12px}.grade-header[data-v-0d9c7f60]{align-items:center;gap:10px;margin-bottom:6px;display:flex}.grade-tag[data-v-0d9c7f60]{color:#fff;border-radius:4px;padding:3px 12px;font-size:13px;font-weight:700}.grade-tag.A[data-v-0d9c7f60]{background:#43a047}.grade-tag.B[data-v-0d9c7f60]{background:#1e88e5}.grade-tag.C[data-v-0d9c7f60]{background:#fb8c00}.grade-tag.D[data-v-0d9c7f60]{background:#ef5350}.grade-date[data-v-0d9c7f60]{color:#999;font-size:12px}.grade-comment[data-v-0d9c7f60]{color:#555;font-size:13px}.empty-state[data-v-0d9c7f60]{text-align:center;color:#888;padding:50px 20px}.empty-icon[data-v-0d9c7f60]{margin-bottom:12px;font-size:48px}.success-card[data-v-0d9c7f60]{text-align:center;padding:40px 20px}.success-icon[data-v-0d9c7f60]{margin-bottom:16px;font-size:64px}.success-card h3[data-v-0d9c7f60]{color:#43a047;margin-bottom:12px}.btn-refresh[data-v-0d9c7f60]{color:#fff;cursor:pointer;background:#1e88e5;border:none;border-radius:8px;margin-top:16px;padding:10px 28px;font-size:14px;font-weight:600}.att-form[data-v-0d9c7f60]{max-width:640px;margin:0 auto}.att-form-simple[data-v-0d9c7f60]{text-align:center;max-width:500px;margin:0 auto}.btn-signin[data-v-0d9c7f60]{color:#fff;letter-spacing:2px;cursor:pointer;background:linear-gradient(135deg,#27ae60,#2ecc71);border:none;border-radius:12px;width:100%;margin-top:10px;padding:18px;font-size:20px;font-weight:700;transition:opacity .2s}.btn-signin[data-v-0d9c7f60]:hover{opacity:.9}.form-row[data-v-0d9c7f60]{gap:16px;display:flex}.form-row .form-group[data-v-0d9c7f60]{flex:1}fieldset[data-v-0d9c7f60]{border:2px solid #f0f0f0;border-radius:10px;margin-bottom:18px;padding:16px}legend[data-v-0d9c7f60]{color:#333;padding:0 6px;font-size:14px;font-weight:600}.radio-group[data-v-0d9c7f60]{flex-wrap:wrap;gap:10px;margin-top:8px;display:flex}.radio-label[data-v-0d9c7f60]{cursor:pointer;border:2px solid #e8e8e8;border-radius:8px;align-items:center;gap:6px;padding:8px 14px;transition:all .15s;display:flex}.radio-label[data-v-0d9c7f60]:has(input:checked){background:#1e88e514;border-color:#1e88e5}.btn-submit-att[data-v-0d9c7f60]{color:#fff;cursor:pointer;background:linear-gradient(135deg,#1e88e5,#42a5f5);border:none;border-radius:10px;width:100%;margin-top:10px;padding:14px;font-size:16px;font-weight:600}.required[data-v-0d9c7f60]{color:#ef5350}
