.settings-container[data-v-cc617bf3]{position:fixed;top:0;left:0;width:100%;height:100vh;background:#fff;display:flex;flex-direction:column;z-index:1000}.settings-header[data-v-cc617bf3]{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;height:56px;border-bottom:1px solid #f0f0f0}.back-btn[data-v-cc617bf3]{background:transparent;border:none;cursor:pointer;padding:4px;color:#333;display:flex;align-items:center;justify-content:center}.settings-title[data-v-cc617bf3]{font-size:18px;font-weight:600;color:#333;margin:0}.settings-content[data-v-cc617bf3]{flex:1;overflow-y:auto;padding:20px;background:#f5f5f5;-webkit-overflow-scrolling:touch}.settings-section[data-v-cc617bf3]{margin-bottom:20px}.section-title[data-v-cc617bf3]{font-size:14px;font-weight:600;color:#666;padding:0 4px;margin-bottom:8px}.settings-list[data-v-cc617bf3]{background:#fff;border-radius:12px;overflow:hidden}.settings-item[data-v-cc617bf3]{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;cursor:pointer;transition:background .2s;border-bottom:1px solid #f0f0f0}.settings-item[data-v-cc617bf3]:last-child{border-bottom:none}.settings-item[data-v-cc617bf3]:active{background:#f9f9f9}.item-left[data-v-cc617bf3]{display:flex;align-items:center;gap:12px;flex:1}.item-icon[data-v-cc617bf3]{width:24px;height:24px;display:flex;align-items:center;justify-content:center;flex-shrink:0;color:#333}.item-icon svg[data-v-cc617bf3]{width:100%;height:100%}.item-text[data-v-cc617bf3]{font-size:16px;color:#333}.item-right[data-v-cc617bf3]{display:flex;align-items:center;gap:8px}.item-value[data-v-cc617bf3]{font-size:14px;color:#999}.toggle-switch[data-v-cc617bf3]{width:44px;height:24px;background:#e5e7eb;border-radius:12px;position:relative;cursor:pointer;transition:background .3s}.toggle-switch.toggle-on[data-v-cc617bf3]{background:#3b82f6}.toggle-slider[data-v-cc617bf3]{width:20px;height:20px;background:#fff;border-radius:50%;position:absolute;top:2px;left:2px;transition:transform .3s;box-shadow:0 2px 4px #0003}.toggle-switch.toggle-on .toggle-slider[data-v-cc617bf3]{transform:translate(20px)}.logout-item .logout-text[data-v-cc617bf3],.logout-item .logout-icon[data-v-cc617bf3]{color:#ef4444}.item-icon.wechat-color[data-v-cc617bf3]{color:#07c160}.item-value.wechat-bound[data-v-cc617bf3]{color:#07c160;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-container[data-v-af3ce82b]{position:fixed;top:0;left:0;width:100%;height:100vh;background:#fff;display:flex;flex-direction:column;z-index:1000}.admin-header[data-v-af3ce82b]{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;height:56px;border-bottom:1px solid #f0f0f0;flex-shrink:0}.back-btn[data-v-af3ce82b]{background:transparent;border:none;cursor:pointer;padding:4px;color:#333;display:flex;align-items:center;justify-content:center}.admin-title[data-v-af3ce82b]{font-size:18px;font-weight:600;color:#333;margin:0}.admin-content[data-v-af3ce82b]{flex:1;overflow-y:auto;padding:20px;background:#f5f5f5;-webkit-overflow-scrolling:touch}.section-header[data-v-af3ce82b]{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.section-title[data-v-af3ce82b]{font-size:14px;font-weight:600;color:#666;padding:0 4px;margin:0}.refresh-btn[data-v-af3ce82b]{display:flex;align-items:center;gap:4px;background:transparent;border:1px solid #ddd;border-radius:8px;padding:6px 12px;font-size:13px;color:#555;cursor:pointer;transition:background .2s}.refresh-btn[data-v-af3ce82b]:active{background:#f0f0f0}.refresh-btn[data-v-af3ce82b]:disabled{opacity:.5;cursor:not-allowed}@keyframes spin-af3ce82b{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.spinning[data-v-af3ce82b]{animation:spin-af3ce82b .8s linear infinite}.loading-wrap[data-v-af3ce82b]{display:flex;flex-direction:column;align-items:center;padding:48px 0;gap:12px;color:#999;font-size:14px}.loading-spinner[data-v-af3ce82b]{width:28px;height:28px;border:3px solid #e5e7eb;border-top-color:#3b82f6;border-radius:50%;animation:spin-af3ce82b .8s linear infinite}.user-list[data-v-af3ce82b]{display:flex;flex-direction:column;gap:10px}.user-card[data-v-af3ce82b]{background:#fff;border-radius:12px;padding:16px;display:flex;flex-direction:column;gap:12px}.user-card-main[data-v-af3ce82b]{display:flex;align-items:center;gap:12px;flex:1;min-width:0}.user-avatar[data-v-af3ce82b]{width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,#3b82f6,#8b5cf6);display:flex;align-items:center;justify-content:center;color:#fff;font-size:18px;font-weight:600;flex-shrink:0}.user-info[data-v-af3ce82b]{min-width:0}.user-name[data-v-af3ce82b]{font-size:15px;font-weight:600;color:#333;display:flex;align-items:center;gap:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.role-badge[data-v-af3ce82b]{font-size:11px;font-weight:500;padding:1px 6px;border-radius:4px;flex-shrink:0}.admin-badge[data-v-af3ce82b]{background:#fef3c7;color:#d97706}.user-meta[data-v-af3ce82b]{font-size:12px;color:#999;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-status[data-v-af3ce82b]{display:flex;align-items:center;gap:5px;margin-top:4px}.status-dot[data-v-af3ce82b]{width:6px;height:6px;border-radius:50%;flex-shrink:0}.status-ok[data-v-af3ce82b]{background:#10b981}.status-warn[data-v-af3ce82b]{background:#f59e0b}.status-text[data-v-af3ce82b]{font-size:12px;color:#777}.user-card-actions[data-v-af3ce82b]{display:flex;gap:8px;align-items:center;justify-content:flex-end;flex-wrap:wrap}.clear-fp-btn[data-v-af3ce82b]{background:#f59e0b;color:#fff;border:none;border-radius:8px;padding:8px 12px;font-size:13px;font-weight:600;cursor:pointer;transition:background .2s;white-space:nowrap}.clear-fp-btn[data-v-af3ce82b]:active{background:#d97706}.clear-fp-btn[data-v-af3ce82b]:disabled{background:#fcd34d;cursor:not-allowed}.unbind-wx-btn[data-v-af3ce82b]{background:#07c160;color:#fff;border:none;border-radius:8px;padding:8px 12px;font-size:13px;font-weight:600;cursor:pointer;transition:background .2s;white-space:nowrap}.unbind-wx-btn[data-v-af3ce82b]:active{background:#06ad56}.unbind-wx-btn[data-v-af3ce82b]:disabled{background:#94d3a2;cursor:not-allowed;opacity:.7}.test-push-btn[data-v-af3ce82b]{background:#3b82f6;color:#fff;border:none;border-radius:8px;padding:8px 12px;font-size:13px;font-weight:600;cursor:pointer;transition:background .2s;white-space:nowrap}.test-push-btn[data-v-af3ce82b]:active{background:#2563eb}.test-push-btn[data-v-af3ce82b]:disabled{background:#93c5fd;cursor:not-allowed;opacity:.7}.reset-btn[data-v-af3ce82b]{background:#ef4444;color:#fff;border:none;border-radius:8px;padding:8px 14px;font-size:13px;font-weight:500;cursor:pointer;transition:background .2s;white-space:nowrap}.reset-btn[data-v-af3ce82b]:active{background:#dc2626}.reset-btn[data-v-af3ce82b]:disabled{background:#fca5a5;cursor:not-allowed}.empty-state[data-v-af3ce82b]{display:flex;flex-direction:column;align-items:center;padding:60px 0;color:#ccc;gap:12px;font-size:14px}.export-card[data-v-af3ce82b]{background:#fff;border-radius:12px;padding:16px;margin-bottom:12px}.export-row[data-v-af3ce82b]{display:flex;gap:8px;flex-wrap:wrap}.export-select[data-v-af3ce82b]{flex:1;min-width:110px;height:42px;border:1px solid #e5e7eb;border-radius:10px;padding:0 10px;font-size:14px;color:#333;background:#fff;outline:none}.export-date[data-v-af3ce82b]{flex:1;min-width:130px;height:42px;border:1px solid #e5e7eb;border-radius:10px;padding:0 10px;font-size:14px;color:#333;outline:none}.export-btn[data-v-af3ce82b]{height:42px;padding:0 18px;background:#10b981;color:#fff;border:none;border-radius:10px;font-size:14px;font-weight:600;cursor:pointer;white-space:nowrap;transition:opacity .2s}.export-btn[data-v-af3ce82b]:disabled{opacity:.45;cursor:not-allowed}.export-btn-row[data-v-af3ce82b]{display:flex;gap:10px;margin-top:10px}.export-btn-all[data-v-af3ce82b]{background:#3b82f6}.export-date-group[data-v-af3ce82b]{display:flex;flex-direction:column;gap:3px}.export-date-label[data-v-af3ce82b]{font-size:11px;color:#9ca3af}.export-date-input[data-v-af3ce82b]{padding:7px 10px;border:1px solid #e5e7eb;border-radius:8px;font-size:13px;color:#374151;background:#fff}.export-date-sep[data-v-af3ce82b]{align-self:flex-end;padding-bottom:8px;color:#9ca3af;font-size:14px}.export-quick-btns[data-v-af3ce82b]{display:flex;gap:6px;align-self:flex-end}.export-quick-btn[data-v-af3ce82b]{padding:7px 12px;border-radius:8px;border:1px solid #6366f1;background:#eef2ff;color:#6366f1;font-size:12px;font-weight:600;cursor:pointer}.export-week-tip[data-v-af3ce82b]{font-size:13px;color:#3b82f6;font-weight:600;margin-bottom:10px}.export-season[data-v-af3ce82b]{max-width:120px}.admin-tabs[data-v-af3ce82b]{display:flex;gap:0;border-bottom:2px solid #f0f0f0;background:#fff;flex-shrink:0}.admin-tab[data-v-af3ce82b]{flex:1;padding:11px 0;background:none;border:none;font-size:14px;font-weight:500;color:#888;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;transition:color .2s,border-color .2s}.admin-tab.tab-active[data-v-af3ce82b]{color:#3b82f6;border-bottom-color:#3b82f6;font-weight:700}.monitor-filters[data-v-af3ce82b]{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}.monitor-select[data-v-af3ce82b],.monitor-date[data-v-af3ce82b],.monitor-course[data-v-af3ce82b]{flex:1;min-width:100px;padding:8px 10px;border:1.5px solid #e5e7eb;border-radius:10px;font-size:13px;outline:none;background:#fff}.monitor-select[data-v-af3ce82b]:focus,.monitor-date[data-v-af3ce82b]:focus,.monitor-course[data-v-af3ce82b]:focus{border-color:#3b82f6}.monitor-btn[data-v-af3ce82b]{padding:8px 18px;background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;border:none;border-radius:10px;font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap}.monitor-btn[data-v-af3ce82b]:disabled{opacity:.6;cursor:not-allowed}.monitor-meta[data-v-af3ce82b]{font-size:13px;font-weight:600;color:#374151;margin-bottom:10px;display:flex;align-items:center;gap:10px}.monitor-stats[data-v-af3ce82b]{color:#6b7280;font-weight:400}.monitor-wrap[data-v-af3ce82b]{flex:1;display:flex;flex-direction:column;overflow:hidden}.monitor-table-scroll[data-v-af3ce82b]{overflow:auto;flex:1;border-radius:12px;border:1px solid #e5e7eb}.monitor-table[data-v-af3ce82b]{border-collapse:collapse;min-width:100%;font-size:12px}.monitor-table th[data-v-af3ce82b],.monitor-table td[data-v-af3ce82b]{border:1px solid #e5e7eb;padding:6px 8px;text-align:center;white-space:nowrap}.monitor-table thead th[data-v-af3ce82b]{background:#f8fafc;font-weight:600;color:#374151;position:sticky;top:0;z-index:2}.col-name[data-v-af3ce82b]{text-align:left!important;min-width:110px;position:sticky;left:0;background:#f8fafc;z-index:3}.col-course[data-v-af3ce82b]{min-width:90px}.course-th-name[data-v-af3ce82b]{font-size:12px}.course-th-period[data-v-af3ce82b]{font-size:11px;color:#3b82f6}.course-th-bld[data-v-af3ce82b]{font-size:10px;color:#9ca3af}.batch-checkin-btn[data-v-af3ce82b]{margin-top:4px;padding:2px 8px;font-size:10px;border:1px solid #3b82f6;color:#3b82f6;background:#fff;border-radius:4px;cursor:pointer;transition:all .2s}.batch-checkin-btn[data-v-af3ce82b]:hover{background:#3b82f6;color:#fff}.batch-checkin-btn[data-v-af3ce82b]:disabled{opacity:.5;cursor:not-allowed}.col-action[data-v-af3ce82b]{width:90px;text-align:center}.row-batch-btn[data-v-af3ce82b]{padding:4px 10px;font-size:11px;border:1px solid #10b981;color:#10b981;background:#fff;border-radius:4px;cursor:pointer;white-space:nowrap}.row-batch-btn[data-v-af3ce82b]:hover{background:#10b981;color:#fff}.row-batch-btn[data-v-af3ce82b]:disabled{opacity:.5;cursor:not-allowed}.makeup-filters[data-v-af3ce82b]{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:14px}.row-rate td[data-v-af3ce82b]{background:#f0f9ff;color:#0369a1;font-weight:600;font-size:11px}.stu-id[data-v-af3ce82b]{font-weight:600;font-size:12px}.stu-nick[data-v-af3ce82b]{font-size:11px;color:#6b7280}.cell-status[data-v-af3ce82b]{vertical-align:middle}.cell-ok[data-v-af3ce82b]{background:#f0fdf4}.cell-fail[data-v-af3ce82b]{background:#fff1f2}.cell-none[data-v-af3ce82b]{background:#fafafa}.status-icon[data-v-af3ce82b]{display:block;font-size:14px;font-weight:700}.cell-ok .status-icon[data-v-af3ce82b]{color:#16a34a}.cell-fail .status-icon[data-v-af3ce82b]{color:#dc2626}.status-dash[data-v-af3ce82b]{color:#d1d5db}.status-time[data-v-af3ce82b]{display:block;font-size:10px;color:#6b7280;margin-top:1px}.monitor-loading[data-v-af3ce82b]{text-align:center;padding:40px;color:#6b7280;font-size:14px}.monitor-empty[data-v-af3ce82b]{text-align:center;padding:40px;color:#9ca3af;font-size:14px}.export-tip[data-v-af3ce82b]{font-size:12px;color:#f59e0b;margin:10px 0 0;line-height:1.5}.search-card[data-v-af3ce82b]{background:#fff;border-radius:12px;padding:16px;margin-bottom:12px}.search-row[data-v-af3ce82b]{display:flex;gap:8px}.search-input[data-v-af3ce82b]{flex:1;height:42px;border:1px solid #e5e7eb;border-radius:10px;padding:0 14px;font-size:15px;color:#333;outline:none;transition:border-color .2s}.search-input[data-v-af3ce82b]:focus{border-color:#3b82f6}.search-btn[data-v-af3ce82b]{height:42px;padding:0 20px;background:#3b82f6;color:#fff;border:none;border-radius:10px;font-size:15px;font-weight:600;cursor:pointer;white-space:nowrap;transition:opacity .2s}.search-btn[data-v-af3ce82b]:disabled{opacity:.45;cursor:not-allowed}.search-empty[data-v-af3ce82b]{text-align:center;color:#999;font-size:14px;padding:20px 0 8px}.student-import-row[data-v-af3ce82b]{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:10px}.student-upload-btn[data-v-af3ce82b]{display:inline-block;padding:8px 14px;border-radius:8px;border:1.5px dashed #6366f1;color:#6366f1;font-size:13px;cursor:pointer;background:#f5f3ff;max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.student-import-btn[data-v-af3ce82b]{padding:8px 18px;border-radius:8px;background:#6366f1;color:#fff;border:none;font-size:13px;font-weight:600;cursor:pointer}.student-import-btn[data-v-af3ce82b]:disabled{opacity:.5;cursor:not-allowed}.import-ok[data-v-af3ce82b]{color:#16a34a;font-size:13px;margin-top:8px}.import-err[data-v-af3ce82b]{color:#dc2626;font-size:13px;margin-top:8px}.reset-all-row[data-v-af3ce82b]{margin-top:14px;padding-top:14px;border-top:1px dashed #e5e7eb;display:flex;align-items:center;gap:12px;flex-wrap:wrap}.reset-all-btn[data-v-af3ce82b]{padding:8px 16px;border-radius:8px;background:#ef4444;color:#fff;border:none;font-size:13px;font-weight:600;cursor:pointer}.reset-all-btn[data-v-af3ce82b]:hover{background:#dc2626}.reset-all-btn[data-v-af3ce82b]:disabled{opacity:.5;cursor:not-allowed}.reset-all-tip[data-v-af3ce82b]{font-size:12px;color:#6b7280}.semester-row[data-v-af3ce82b]{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.semester-label[data-v-af3ce82b]{font-size:13px;font-weight:600;color:#374151}.semester-input[data-v-af3ce82b]{height:36px;padding:0 10px;border:1px solid #d1d5db;border-radius:8px;font-size:13px;outline:none}.semester-input[data-v-af3ce82b]:focus{border-color:#3b82f6}.semester-btn[data-v-af3ce82b]{padding:8px 16px;border-radius:8px;background:#3b82f6;color:#fff;border:none;font-size:13px;font-weight:600;cursor:pointer}.semester-btn[data-v-af3ce82b]:hover{background:#2563eb}.semester-btn[data-v-af3ce82b]:disabled{opacity:.5;cursor:not-allowed}.semester-week-hint[data-v-af3ce82b]{font-size:13px;color:#10b981;font-weight:600}.import-card[data-v-af3ce82b]{background:#fff;border-radius:12px;padding:16px;margin-bottom:12px}.import-desc[data-v-af3ce82b]{font-size:13px;color:#777;margin:0 0 12px;line-height:1.5}.upload-area[data-v-af3ce82b]{display:flex;flex-direction:column;align-items:center;justify-content:center;border:2px dashed #d1d5db;border-radius:10px;padding:24px 16px;cursor:pointer;transition:border-color .2s,background .2s;gap:6px}.upload-area[data-v-af3ce82b]:active,.upload-dragging[data-v-af3ce82b]{border-color:#3b82f6;background:#eff6ff}.upload-icon[data-v-af3ce82b]{font-size:32px;line-height:1}.upload-hint[data-v-af3ce82b]{font-size:14px;color:#555;font-weight:500}.upload-sub[data-v-af3ce82b]{font-size:12px;color:#aaa}.import-file-list[data-v-af3ce82b]{display:flex;flex-direction:column;gap:6px;margin:10px 0;max-height:200px;overflow-y:auto}.import-file-row[data-v-af3ce82b]{display:flex;align-items:center;gap:8px;padding:6px 10px;background:#f9fafb;border-radius:8px;font-size:13px}.import-file-status[data-v-af3ce82b]{font-size:15px;flex-shrink:0}.import-file-msg[data-v-af3ce82b]{font-size:12px;margin-left:auto}.msg-ok[data-v-af3ce82b]{color:#16a34a}.msg-err[data-v-af3ce82b]{color:#dc2626}.import-actions[data-v-af3ce82b]{display:flex;gap:10px;align-items:center;margin-top:10px}.import-clear-all-btn[data-v-af3ce82b]{padding:8px 14px;border-radius:8px;border:1px solid #e5e7eb;background:#f3f4f6;color:#6b7280;font-size:13px;cursor:pointer}.import-file-info[data-v-af3ce82b]{display:flex;align-items:center;justify-content:space-between;margin-top:10px;background:#f0fdf4;border-radius:8px;padding:8px 12px}.import-file-name[data-v-af3ce82b]{font-size:13px;color:#16a34a;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.import-clear-btn[data-v-af3ce82b]{background:transparent;border:none;color:#999;cursor:pointer;font-size:14px;padding:0 4px;flex-shrink:0}.import-btn[data-v-af3ce82b]{width:100%;margin-top:12px;padding:12px 0;background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;border:none;border-radius:10px;font-size:15px;font-weight:600;cursor:pointer;transition:opacity .2s}.import-btn[data-v-af3ce82b]:disabled{opacity:.45;cursor:not-allowed}.import-result[data-v-af3ce82b]{margin-top:10px;padding:10px 14px;border-radius:8px;font-size:13px;font-weight:500}.result-ok[data-v-af3ce82b]{background:#f0fdf4;color:#16a34a}.result-err[data-v-af3ce82b]{background:#fef2f2;color:#dc2626}.confirm-mask[data-v-af3ce82b]{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:flex-end;justify-content:center;z-index:2000;padding-bottom:env(safe-area-inset-bottom)}.confirm-box[data-v-af3ce82b]{background:#fff;border-radius:20px 20px 0 0;padding:24px 20px 32px;width:100%;max-width:480px}.confirm-title[data-v-af3ce82b]{font-size:17px;font-weight:600;color:#333;margin:0 0 12px;text-align:center}.confirm-msg[data-v-af3ce82b]{font-size:14px;color:#555;line-height:1.6;margin:0 0 24px;text-align:center}.confirm-msg strong[data-v-af3ce82b]{color:#333}.confirm-actions[data-v-af3ce82b]{display:flex;gap:12px}.btn-cancel[data-v-af3ce82b]{flex:1;padding:13px 0;border-radius:12px;border:1px solid #e5e7eb;background:#f9fafb;color:#555;font-size:15px;cursor:pointer}.btn-confirm[data-v-af3ce82b]{flex:1;padding:13px 0;border-radius:12px;border:none;background:#ef4444;color:#fff;font-size:15px;font-weight:600;cursor:pointer}.btn-confirm[data-v-af3ce82b]:active{background:#dc2626}.makeup-badge[data-v-af3ce82b]{display:inline-block;min-width:16px;height:16px;line-height:16px;padding:0 4px;border-radius:8px;background:#ef4444;color:#fff;font-size:10px;font-weight:700;margin-left:4px;vertical-align:middle}.makeup-admin-wrap[data-v-af3ce82b]{display:flex;flex-direction:column;gap:12px;padding:4px 0}.makeup-admin-card[data-v-af3ce82b]{padding:14px;border:1px solid #e5e7eb;border-radius:14px;background:#fff;display:flex;flex-direction:column;gap:6px}.makeup-admin-top[data-v-af3ce82b]{display:flex;justify-content:space-between;align-items:center}.makeup-admin-user[data-v-af3ce82b]{font-size:14px;font-weight:700;color:#1f2937}.makeup-admin-course[data-v-af3ce82b]{font-size:13px;color:#374151;font-weight:600}.makeup-admin-reason[data-v-af3ce82b],.makeup-admin-time[data-v-af3ce82b],.makeup-admin-comment[data-v-af3ce82b]{font-size:12px;color:#6b7280}.makeup-status-badge[data-v-af3ce82b]{font-size:11px;font-weight:600;padding:2px 8px;border-radius:8px}.status-pending[data-v-af3ce82b]{background:#fef3c7;color:#d97706}.status-approved[data-v-af3ce82b]{background:#dcfce7;color:#16a34a}.status-rejected[data-v-af3ce82b]{background:#fee2e2;color:#dc2626}.makeup-admin-actions[data-v-af3ce82b]{display:flex;flex-direction:column;gap:8px;margin-top:4px}.makeup-comment-input[data-v-af3ce82b]{width:100%;padding:8px 10px;border:1px solid #d1d5db;border-radius:8px;font-size:13px;box-sizing:border-box}.makeup-action-btns[data-v-af3ce82b]{display:flex;gap:8px}.makeup-approve-btn[data-v-af3ce82b],.makeup-reject-btn[data-v-af3ce82b]{flex:1;padding:8px;border-radius:10px;border:none;font-size:13px;font-weight:700;cursor:pointer}.makeup-approve-btn[data-v-af3ce82b]{background:#dcfce7;color:#16a34a}.makeup-reject-btn[data-v-af3ce82b]{background:#fee2e2;color:#dc2626}.makeup-admin-imgs[data-v-af3ce82b]{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px}.makeup-admin-img[data-v-af3ce82b]{width:72px;height:72px;object-fit:cover;border-radius:8px;cursor:pointer;border:1px solid #e5e7eb}.img-preview-overlay[data-v-af3ce82b]{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000d9;z-index:9999;display:flex;align-items:center;justify-content:center}.img-preview-full[data-v-af3ce82b]{max-width:90vw;max-height:90vh;border-radius:8px;object-fit:contain}.cell-clickable[data-v-af3ce82b]{cursor:pointer;position:relative}.cell-fail.cell-clickable[data-v-af3ce82b]:hover{background:#ffe4e6!important}.cell-none.cell-clickable[data-v-af3ce82b]:hover{background:#f0f9ff!important}.cell-view-hint[data-v-af3ce82b]{display:block;font-size:9px;color:#f87171;margin-top:1px}.cell-none .cell-view-hint[data-v-af3ce82b]{color:#93c5fd}.map-overlay[data-v-af3ce82b]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;z-index:3000;display:flex;align-items:center;justify-content:center;padding:16px}.map-panel[data-v-af3ce82b]{background:#fff;border-radius:16px;width:100%;max-width:520px;max-height:90vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 20px 60px #0003}.map-panel-header[data-v-af3ce82b]{display:flex;align-items:center;justify-content:space-between;padding:16px 20px 12px;border-bottom:1px solid #f0f0f0}.map-panel-title[data-v-af3ce82b]{margin:0;font-size:17px;font-weight:700;color:#1f2937}.map-close-btn[data-v-af3ce82b]{background:none;border:none;font-size:24px;color:#9ca3af;cursor:pointer;line-height:1;padding:0 4px}.map-close-btn[data-v-af3ce82b]:hover{color:#374151}.map-student-info[data-v-af3ce82b]{padding:12px 20px 4px;display:flex;flex-wrap:wrap;align-items:center;gap:8px}.map-stu-name[data-v-af3ce82b]{font-size:15px;font-weight:700;color:#1f2937}.map-stu-id[data-v-af3ce82b]{font-size:12px;color:#6b7280;background:#f3f4f6;padding:2px 8px;border-radius:6px}.map-stu-course[data-v-af3ce82b]{font-size:13px;color:#3b82f6;font-weight:600}.map-fail-reason[data-v-af3ce82b]{margin:4px 20px 0;padding:8px 12px;background:#fef2f2;border-radius:8px;font-size:13px;color:#dc2626;font-weight:500}.map-coords[data-v-af3ce82b]{padding:4px 20px 8px;font-size:12px;color:#9ca3af}.map-container[data-v-af3ce82b]{height:320px;margin:0 16px;border-radius:12px;border:1px solid #e5e7eb;overflow:hidden;flex-shrink:0}.map-actions[data-v-af3ce82b]{display:flex;gap:10px;padding:14px 20px 18px}.map-approve-btn[data-v-af3ce82b]{flex:1;padding:12px;border-radius:12px;border:none;background:linear-gradient(135deg,#16a34a,#15803d);color:#fff;font-size:14px;font-weight:700;cursor:pointer}.map-approve-btn[data-v-af3ce82b]:disabled{opacity:.5;cursor:not-allowed}.map-approve-btn[data-v-af3ce82b]:active{filter:brightness(.9)}.map-reject-btn[data-v-af3ce82b]{flex:1;padding:12px;border-radius:12px;border:1px solid #e5e7eb;background:#f9fafb;color:#6b7280;font-size:14px;font-weight:600;cursor:pointer}.map-reject-btn[data-v-af3ce82b]:active{background:#f3f4f6}.map-no-record-hint[data-v-af3ce82b]{padding:20px;margin:0 20px;background:#f0f9ff;border-radius:10px;font-size:14px;color:#0369a1;text-align:center;line-height:1.6}.chat-history-container[data-v-bb79c50d]{position:fixed;top:0;left:0;width:100%;height:100vh;background:#fff;display:flex;flex-direction:column;z-index:1000}.chat-history-header[data-v-bb79c50d]{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;height:56px;border-bottom:1px solid #f0f0f0}.back-btn[data-v-bb79c50d],.delete-btn[data-v-bb79c50d]{background:transparent;border:none;cursor:pointer;padding:4px;color:#333;display:flex;align-items:center;justify-content:center}.chat-history-title[data-v-bb79c50d]{font-size:18px;font-weight:600;color:#333;margin:0}.chat-history-content[data-v-bb79c50d]{flex:1;overflow-y:auto;padding:20px;-webkit-overflow-scrolling:touch}.empty-state[data-v-bb79c50d]{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;padding:40px 20px;text-align:center}.empty-icon[data-v-bb79c50d]{font-size:64px;margin-bottom:16px;opacity:.3}.empty-text[data-v-bb79c50d]{font-size:18px;font-weight:600;color:#666;margin-bottom:8px}.empty-hint[data-v-bb79c50d]{font-size:14px;color:#999;line-height:1.5}.loading-state[data-v-bb79c50d]{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;padding:40px 20px;text-align:center}.loading-icon[data-v-bb79c50d]{font-size:48px;margin-bottom:16px;animation:pulse-bb79c50d 1.5s ease-in-out infinite}.loading-text[data-v-bb79c50d]{font-size:16px;color:#666}@keyframes pulse-bb79c50d{0%,to{opacity:1}50%{opacity:.5}}.chat-group[data-v-bb79c50d]{margin-bottom:32px}.group-date[data-v-bb79c50d]{font-size:14px;font-weight:600;color:#333;margin-bottom:12px}.chat-list[data-v-bb79c50d]{display:flex;flex-direction:column;gap:0}.chat-item[data-v-bb79c50d]{display:flex;align-items:center;gap:12px;padding:12px 0;cursor:pointer;border-bottom:1px solid #f0f0f0;transition:background .2s}.chat-item[data-v-bb79c50d]:last-child{border-bottom:none}.chat-item[data-v-bb79c50d]:active{background:#f9f9f9}.chat-icon[data-v-bb79c50d]{font-size:20px;flex-shrink:0}.chat-info[data-v-bb79c50d]{flex:1;min-width:0}.chat-title[data-v-bb79c50d]{font-size:16px;color:#333;margin-bottom:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-time[data-v-bb79c50d]{font-size:12px;color:#999}.new-chat-btn[data-v-bb79c50d]{position:fixed;bottom:20px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:8px;padding:14px 24px;background:#3b82f6;color:#fff;border:none;border-radius:24px;font-size:16px;font-weight:500;cursor:pointer;box-shadow:0 4px 12px #3b82f666;transition:all .3s}.new-chat-btn[data-v-bb79c50d]:active{transform:translate(-50%) scale(.95);box-shadow:0 2px 8px #3b82f64d}.login-container[data-v-dfe43f20]{position:fixed;top:0;left:0;width:100%;height:100vh;background:linear-gradient(180deg,#fff,#f0f4ff,#dde7ff);display:flex;align-items:center;justify-content:center;z-index:2000;padding:20px}.login-box[data-v-dfe43f20]{width:100%;max-width:400px;background:#fff;border-radius:20px;padding:40px 30px;box-shadow:0 8px 32px #0000001a;position:relative}.close-btn[data-v-dfe43f20]{position:absolute;top:16px;right:16px;background:transparent;border:none;cursor:pointer;padding:8px;color:#666;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .2s;z-index:10}.close-btn[data-v-dfe43f20]:hover{background:#f5f5f5;color:#333}.close-btn[data-v-dfe43f20]:active{transform:scale(.9)}.login-header[data-v-dfe43f20]{text-align:center;margin-bottom:40px}.login-avatar[data-v-dfe43f20]{width:80px;height:80px;border-radius:50%;background:linear-gradient(135deg,#e0e7ff,#f3e8ff);display:flex;align-items:center;justify-content:center;font-size:40px;margin:0 auto 20px}.login-title[data-v-dfe43f20]{font-size:24px;font-weight:600;color:#333;margin:0 0 8px}.login-subtitle[data-v-dfe43f20]{font-size:14px;color:#999;margin:0}.login-form[data-v-dfe43f20]{display:flex;flex-direction:column;gap:20px}.form-group[data-v-dfe43f20]{display:flex;flex-direction:column;gap:8px}.form-label[data-v-dfe43f20]{font-size:14px;font-weight:500;color:#333}.form-input[data-v-dfe43f20]{padding:12px 16px;border:1px solid #e5e7eb;border-radius:12px;font-size:16px;color:#333;background:#fafafa;transition:all .3s}.form-input[data-v-dfe43f20]:focus{outline:none;border-color:#3b82f6;background:#fff}.form-input[data-v-dfe43f20]::placeholder{color:#9ca3af}.remember-me-wrapper[data-v-dfe43f20]{margin:-8px 0 0}.remember-me-label[data-v-dfe43f20]{display:flex;align-items:center;gap:8px;cursor:pointer;-webkit-user-select:none;user-select:none}.remember-me-checkbox[data-v-dfe43f20]{width:18px;height:18px;cursor:pointer;accent-color:#3b82f6}.remember-me-text[data-v-dfe43f20]{font-size:14px;color:#666}.error-message[data-v-dfe43f20]{padding:12px;background:#fee2e2;border:1px solid #fecaca;border-radius:8px;color:#dc2626;font-size:14px;text-align:center}.login-btn[data-v-dfe43f20]{width:100%;padding:14px;background:#3b82f6;color:#fff;border:none;border-radius:12px;font-size:16px;font-weight:500;cursor:pointer;transition:all .3s;margin-top:10px}.login-btn[data-v-dfe43f20]:hover:not(:disabled){background:#2563eb}.login-btn[data-v-dfe43f20]:active:not(:disabled){transform:scale(.98)}.login-btn[data-v-dfe43f20]:disabled{background:#d1d5db;cursor:not-allowed;opacity:.6}.login-divider[data-v-dfe43f20]{display:flex;align-items:center;gap:12px;margin:4px 0;color:#9ca3af;font-size:12px}.login-divider[data-v-dfe43f20]:before,.login-divider[data-v-dfe43f20]:after{content:"";flex:1;height:1px;background:#e5e7eb}.wechat-btn[data-v-dfe43f20]{width:100%;padding:12px;background:#07c160;color:#fff;border:none;border-radius:12px;font-size:16px;font-weight:500;cursor:pointer;transition:all .3s;display:flex;align-items:center;justify-content:center;gap:8px}.wechat-btn[data-v-dfe43f20]:hover:not(:disabled){background:#06ad56}.wechat-btn[data-v-dfe43f20]:active:not(:disabled){transform:scale(.98)}.wechat-btn[data-v-dfe43f20]:disabled{background:#94d3a2;cursor:not-allowed;opacity:.6}.wechat-icon[data-v-dfe43f20]{flex-shrink:0}.change-password-container[data-v-98740af3]{position:fixed;top:0;left:0;width:100%;height:100vh;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:3000;padding:20px}.change-password-box[data-v-98740af3]{width:100%;max-width:400px;background:#fff;border-radius:20px;padding:40px 30px;box-shadow:0 8px 32px #0003;position:relative}.change-password-header[data-v-98740af3]{text-align:center;margin-bottom:40px}.change-password-icon[data-v-98740af3]{width:80px;height:80px;border-radius:50%;background:linear-gradient(135deg,#fee2e2,#fecaca);display:flex;align-items:center;justify-content:center;font-size:40px;margin:0 auto 20px}.change-password-title[data-v-98740af3]{font-size:24px;font-weight:600;color:#333;margin:0 0 8px}.change-password-subtitle[data-v-98740af3]{font-size:14px;color:#999;margin:0}.change-password-form[data-v-98740af3]{display:flex;flex-direction:column;gap:20px}.form-group[data-v-98740af3]{display:flex;flex-direction:column;gap:8px}.form-label[data-v-98740af3]{font-size:14px;font-weight:500;color:#333}.form-input[data-v-98740af3]{padding:12px 16px;border:1px solid #e5e7eb;border-radius:12px;font-size:16px;color:#333;background:#fafafa;transition:all .3s}.form-input[data-v-98740af3]:focus{outline:none;border-color:#3b82f6;background:#fff}.form-input[data-v-98740af3]::placeholder{color:#9ca3af}.error-message[data-v-98740af3]{padding:12px;background:#fee2e2;border:1px solid #fecaca;border-radius:8px;color:#dc2626;font-size:14px;text-align:center}.change-password-btn[data-v-98740af3]{width:100%;padding:14px;background:#3b82f6;color:#fff;border:none;border-radius:12px;font-size:16px;font-weight:500;cursor:pointer;transition:all .3s;margin-top:10px}.change-password-btn[data-v-98740af3]:hover:not(:disabled){background:#2563eb}.change-password-btn[data-v-98740af3]:active:not(:disabled){transform:scale(.98)}.change-password-btn[data-v-98740af3]:disabled{background:#d1d5db;cursor:not-allowed;opacity:.6}.home-container[data-v-ea4227b0]{width:100%;height:100vh;background:linear-gradient(180deg,#fff,#f0f4ff,#dde7ff);display:flex;flex-direction:column;position:relative;overflow:hidden}.sidebar-overlay[data-v-ea4227b0]{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;z-index:998;animation:fadeIn-ea4227b0 .3s ease}.dropdown-overlay[data-v-ea4227b0]{position:fixed;top:0;left:0;right:0;bottom:0;z-index:99}@keyframes fadeIn-ea4227b0{0%{opacity:0}to{opacity:1}}.sidebar[data-v-ea4227b0]{position:fixed;top:0;left:0;width:78%;max-width:300px;height:100vh;background:#fffffff5;z-index:999;transform:translate(-100%);transition:transform .28s ease;display:flex;flex-direction:column;box-shadow:6px 0 30px #0f172a24;border-right:1px solid rgba(148,163,184,.25);border-top-right-radius:18px;border-bottom-right-radius:18px;overflow:hidden;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.sidebar-open[data-v-ea4227b0]{transform:translate(0)}.sidebar-header[data-v-ea4227b0]{padding:18px 16px;border-bottom:1px solid rgba(148,163,184,.18);display:flex;justify-content:space-between;align-items:flex-start;background:linear-gradient(135deg,#3b82f61a,#fff0 60%)}.sidebar-user[data-v-ea4227b0]{display:flex;align-items:center;gap:12px;flex:1}.sidebar-avatar[data-v-ea4227b0]{width:48px;height:48px;border-radius:50%;background:linear-gradient(135deg,#e0e7ff,#f3e8ff);display:flex;align-items:center;justify-content:center;font-size:24px;flex-shrink:0}.sidebar-user-info[data-v-ea4227b0]{flex:1;min-width:0}.sidebar-username[data-v-ea4227b0]{font-size:16px;font-weight:600;color:#333;margin-bottom:4px}.sidebar-uid[data-v-ea4227b0]{font-size:12px;color:#999}.sidebar-close[data-v-ea4227b0]{background:transparent;border:none;cursor:pointer;padding:4px;color:#666;display:flex;align-items:center;justify-content:center}.sidebar-content[data-v-ea4227b0]{flex:1;overflow-y:auto;padding:16px;-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none}.sidebar-content[data-v-ea4227b0]::-webkit-scrollbar{width:0;height:0}.sidebar-section[data-v-ea4227b0]{margin-top:8px}.sidebar-section-title[data-v-ea4227b0]{font-size:14px;font-weight:600;color:#333;margin-bottom:12px}.sidebar-feature-grid[data-v-ea4227b0]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.sidebar-feature-item[data-v-ea4227b0]{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid rgba(148,163,184,.18);background:#02061708;border-radius:14px;padding:10px 8px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;cursor:pointer;transition:transform .15s ease,background .15s ease,border-color .15s ease}.sidebar-feature-item[data-v-ea4227b0]:active{transform:scale(.98);background:#0206170d}.sidebar-feature-item-selected[data-v-ea4227b0]{background:linear-gradient(135deg,#3b82f62e,#2563eb1a 60%,#1d4ed814);border-color:#3b82f652}.sidebar-feature-icon[data-v-ea4227b0]{width:40px;height:40px;border-radius:12px;background:linear-gradient(135deg,#e0e7ff,#f3e8ff);display:flex;align-items:center;justify-content:center;font-size:20px}.sidebar-feature-name[data-v-ea4227b0]{font-size:12px;font-weight:600;color:#0f172ae6;text-align:center;line-height:1.2}.sidebar-more-list[data-v-ea4227b0]{display:flex;flex-direction:column;gap:10px}.sidebar-more-item[data-v-ea4227b0]{width:100%;border:1px solid rgba(148,163,184,.18);background:#02061708;border-radius:14px;padding:12px;display:flex;align-items:center;gap:12px;cursor:pointer;transition:transform .15s ease,background .15s ease}.sidebar-more-item[data-v-ea4227b0]:active{transform:scale(.99);background:#0206170d}.sidebar-more-item-disabled[data-v-ea4227b0]{opacity:.6;cursor:not-allowed;-webkit-user-select:none;user-select:none}.sidebar-more-icon[data-v-ea4227b0]{width:40px;height:40px;border-radius:12px;background:linear-gradient(135deg,#e0e7ff,#f3e8ff);display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0}.sidebar-more-text[data-v-ea4227b0]{min-width:0;text-align:left}.sidebar-more-title[data-v-ea4227b0]{font-size:14px;font-weight:700;color:#0f172ae6;line-height:1.2}.sidebar-more-subtitle[data-v-ea4227b0]{margin-top:3px;font-size:11px;color:#64748be6}.header[data-v-ea4227b0]{display:flex;justify-content:space-between;align-items:center;padding:10px 16px;height:56px;position:relative;z-index:100}.title-dropdown[data-v-ea4227b0]{position:relative;display:flex;align-items:center;justify-content:center;flex:1;min-width:0}.header-spacer[data-v-ea4227b0]{width:24px;height:24px;flex:0 0 24px}.role-switch[data-v-ea4227b0]{display:inline-flex;align-items:center;justify-content:center;gap:8px;max-width:200px;width:fit-content;padding:6px 10px;border-radius:999px;border:1px solid rgba(148,163,184,.26);background:#ffffffc7;box-shadow:0 8px 20px #0f172a1a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);cursor:pointer;transition:transform .15s ease,box-shadow .15s ease,background .15s ease}.role-switch[data-v-ea4227b0]:active{transform:scale(.99);box-shadow:0 6px 16px #0f172a1a;background:#ffffffe6}.role-avatar[data-v-ea4227b0]{width:24px;height:24px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;color:#0f172ad9;background:linear-gradient(135deg,#e0e7fff2,#f3e8fff2);border:1px solid rgba(148,163,184,.18);flex:0 0 24px}.dropdown-arrow[data-v-ea4227b0]{transition:transform .3s ease;color:#666}.dropdown-arrow.arrow-open[data-v-ea4227b0]{transform:rotate(180deg)}.agent-dropdown-menu[data-v-ea4227b0]{position:absolute;top:calc(100% + 10px);left:50%;transform:translate(-50%);background:#fffffff5;border-radius:14px;border:1px solid rgba(148,163,184,.22);box-shadow:0 16px 40px #0f172a29;min-width:240px;width:240px;padding:6px;overflow:clip;z-index:101;animation:slideDown-ea4227b0 .2s ease}@keyframes slideDown-ea4227b0{0%{opacity:0;transform:translate(-50%) translateY(-10px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.agent-option[data-v-ea4227b0]{width:100%;display:flex;align-items:center;justify-content:space-between;padding:10px;cursor:pointer;transition:background .15s ease,transform .15s ease;border-radius:12px;border:none;background:transparent}.agent-option.agent-selected[data-v-ea4227b0]{background:#3b82f61f;color:#1e40aff2}.agent-option.agent-disabled[data-v-ea4227b0]{opacity:.4;cursor:not-allowed;pointer-events:none}.agent-option[data-v-ea4227b0]:active:not(.agent-disabled){transform:scale(.99)}.agent-option[data-v-ea4227b0]:hover:not(.agent-disabled){background:#0206170a}.agent-option-left[data-v-ea4227b0]{display:inline-flex;align-items:center;gap:10px;min-width:0}.agent-option-avatar[data-v-ea4227b0]{width:28px;height:28px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;font-size:13px;font-weight:800;color:#0f172ad9;background:linear-gradient(135deg,#e0e7fff2,#f3e8fff2);border:1px solid rgba(148,163,184,.18);flex:0 0 28px}.agent-option-name[data-v-ea4227b0]{font-size:14px;font-weight:600;color:#0f172ae6;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.menu-icon[data-v-ea4227b0]{display:flex;flex-direction:column;gap:4px;cursor:pointer;width:24px;height:24px}.menu-icon span[data-v-ea4227b0]{width:20px;height:2px;background-color:#333;border-radius:2px}.app-title[data-v-ea4227b0]{font-size:16px;font-weight:600;color:#333;margin:0}.content-wrapper[data-v-ea4227b0]{flex:1;display:flex;flex-direction:column;background-image:url(/bg1.png);background-size:cover;background-position:center bottom;background-repeat:no-repeat;background-attachment:fixed;position:relative;overflow:hidden}.main-content[data-v-ea4227b0]{flex:1;overflow-y:auto;overflow-x:hidden;padding:20px;-webkit-overflow-scrolling:touch;background-size:50% auto;background-position:center calc(100% - 100px);background-repeat:no-repeat;background-attachment:fixed;scrollbar-width:none;-ms-overflow-style:none}.main-content[data-v-ea4227b0]::-webkit-scrollbar{width:0;height:0}.welcome-screen[data-v-ea4227b0]{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:24px}.welcome-message[data-v-ea4227b0]{text-align:center;color:#333;font-size:18px;line-height:1.6;background:#fffffff2;padding:20px 30px;border-radius:16px;box-shadow:0 8px 24px #00000026;border:1px solid rgba(255,255,255,.5)}.welcome-message p[data-v-ea4227b0]{margin:8px 0}.chat-messages[data-v-ea4227b0]{display:flex;flex-direction:column;gap:12px;padding-bottom:16px;position:relative;z-index:1}.message-item[data-v-ea4227b0]{display:flex;width:100%;padding:2px 0}.message-item-user[data-v-ea4227b0]{justify-content:flex-end}.message-item-assistant[data-v-ea4227b0]{justify-content:flex-start}.message-bubble[data-v-ea4227b0]{max-width:78%;padding:12px 14px;border-radius:18px;word-wrap:break-word;word-break:break-word;line-height:1.65;font-size:15px;letter-spacing:.1px}.message-item-assistant .message-bubble[data-v-ea4227b0]{width:100%;max-width:100%;width:calc(100% + 40px)}.user-message[data-v-ea4227b0]{align-self:flex-end;background:linear-gradient(135deg,#3b82f6,#2563eb 60%,#1d4ed8);color:#fff;border-bottom-right-radius:6px;box-shadow:0 10px 28px #2563eb38;border:1px solid rgba(255,255,255,.22)}.assistant-message[data-v-ea4227b0]{align-self:flex-start;background:#ffffffeb;color:#0f172a;border-bottom-left-radius:6px;border:1px solid rgba(148,163,184,.35);box-shadow:0 10px 30px #0f172a14;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.assistant-content[data-v-ea4227b0]{white-space:pre-wrap;line-height:1.7;margin-bottom:8px}.message-meta[data-v-ea4227b0]{font-size:12px;color:#64748bf2;margin-top:2px;-webkit-user-select:none;user-select:none}.streaming-indicator[data-v-ea4227b0]{display:inline-flex;align-items:center;gap:8px;padding:6px 10px;background:#3b82f61a;border-radius:999px;width:fit-content;color:#1d4ed8;font-size:12px;margin-top:6px;border:1px solid rgba(59,130,246,.18)}.streaming-time[data-v-ea4227b0]{opacity:.9}.typing-dots[data-v-ea4227b0]{display:inline-flex;gap:4px;transform:translateY(1px)}.typing-dots .dot[data-v-ea4227b0]{width:5px;height:5px;border-radius:50%;background:#2563eb;opacity:.25;animation:typingDot-ea4227b0 1s infinite ease-in-out}.typing-dots .dot[data-v-ea4227b0]:nth-child(2){animation-delay:.15s}.typing-dots .dot[data-v-ea4227b0]:nth-child(3){animation-delay:.3s}@keyframes typingDot-ea4227b0{0%,to{transform:translateY(0);opacity:.25}50%{transform:translateY(-2px);opacity:.9}}.message-actions[data-v-ea4227b0]{display:flex;gap:12px;margin-top:8px;padding-top:8px;border-top:1px solid rgba(148,163,184,.22)}.action-btn[data-v-ea4227b0]{background:transparent;border:none;cursor:pointer;padding:4px;opacity:.55;transition:opacity .2s;display:flex;align-items:center;justify-content:center;color:#334155e6}.action-btn[data-v-ea4227b0]:hover{opacity:1;color:#0f172a}.action-btn[data-v-ea4227b0]:active{transform:scale(.9)}.action-btn svg[data-v-ea4227b0]{width:16px;height:16px}.bottom-section[data-v-ea4227b0]{padding:14px 16px 8px;margin:0 5px;position:relative;background:#ffffffd9;border-top-left-radius:20px;border-top-right-radius:20px;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:0 -4px 20px #0000001a}.feature-buttons-wrapper[data-v-ea4227b0]{margin-bottom:8px;overflow-x:auto;overflow-y:visible;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding:4px 12px}.feature-buttons-wrapper[data-v-ea4227b0]::-webkit-scrollbar{display:none}.feature-buttons[data-v-ea4227b0]{display:inline-flex;gap:10px;min-width:max-content}.feature-btn[data-v-ea4227b0]{flex-shrink:0;padding:6px 14px;background:#fff;border:none;border-radius:12px;cursor:pointer;transition:all .3s ease;font-size:14px;color:#333;font-weight:500;white-space:nowrap;box-shadow:0 2px 12px #00000014}.feature-btn.feature-btn-active[data-v-ea4227b0]{background:linear-gradient(135deg,#3b82f6,#2563eb 60%,#1d4ed8);color:#fff;box-shadow:0 10px 22px #2563eb38}.feature-btn[data-v-ea4227b0]:active{transform:scale(.95);box-shadow:0 1px 8px #0000001a}.checkin-btn[data-v-ea4227b0]{background:linear-gradient(135deg,#10b981,#059669);color:#fff;box-shadow:0 4px 14px #10b98140}.checkin-btn[data-v-ea4227b0]:hover:not(:disabled){background:linear-gradient(135deg,#059669,#047857);box-shadow:0 6px 18px #10b98159}.checkin-btn[data-v-ea4227b0]:disabled{opacity:.7;cursor:not-allowed}.checkin-overlay[data-v-ea4227b0]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:flex-start;justify-content:center;padding-top:12vh;z-index:1000;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.checkin-modal[data-v-ea4227b0]{background:#fff;border-radius:16px;padding:20px 20px 16px;width:min(88vw,320px);box-shadow:0 12px 40px #0000002e;display:flex;flex-direction:column;align-items:center;gap:8px;animation:checkin-pop-ea4227b0 .22s ease}@keyframes checkin-pop-ea4227b0{0%{transform:scale(.88);opacity:0}to{transform:scale(1);opacity:1}}.checkin-modal-icon[data-v-ea4227b0]{font-size:36px;line-height:1}.checkin-modal-title[data-v-ea4227b0]{font-size:17px;font-weight:700;color:#059669;margin-bottom:2px}.checkin-modal-body[data-v-ea4227b0]{width:100%;display:flex;flex-direction:column;gap:8px;margin-top:2px}.checkin-modal-row[data-v-ea4227b0]{display:flex;flex-direction:column;gap:3px;background:#f0fdf4;border-radius:10px;padding:9px 12px}.checkin-modal-label[data-v-ea4227b0]{font-size:11px;color:#6b7280;font-weight:600}.checkin-modal-value[data-v-ea4227b0]{font-size:13px;color:#111827;word-break:break-all;line-height:1.4}.checkin-modal-close[data-v-ea4227b0]{margin-top:4px;width:100%;padding:9px 0;background:linear-gradient(135deg,#10b981,#059669);color:#fff;border:none;border-radius:10px;font-size:14px;font-weight:600;cursor:pointer;transition:opacity .2s}.checkin-modal-close[data-v-ea4227b0]:hover{opacity:.88}.checkin-modal-fail[data-v-ea4227b0]{border-top:4px solid #ef4444}.checkin-modal-ok[data-v-ea4227b0]{border-top:4px solid #10b981}.input-container[data-v-ea4227b0]{margin-bottom:12px}.input-field[data-v-ea4227b0]{display:flex;align-items:center;padding:6px 12px;background:#fff;border-radius:10px;border:none;gap:10px;box-shadow:0 2px 12px #00000014}.input-field input[data-v-ea4227b0]{flex:1;border:none;background:transparent;outline:none;font-size:15px;color:#333}.input-field input[data-v-ea4227b0]::placeholder{color:#9ca3af}.input-field.disabled-field[data-v-ea4227b0]{background:#f5f5f5;opacity:.7;cursor:not-allowed}.input-field.disabled-field input[data-v-ea4227b0]{cursor:not-allowed;color:#999}.send-btn[data-v-ea4227b0]{padding:7px 16px;background:#3b82f6;color:#fff;border:none;border-radius:20px;cursor:pointer;font-size:14px;font-weight:500;transition:all .3s ease;white-space:nowrap}.send-btn[data-v-ea4227b0]:hover:not(:disabled){background:#2563eb}.send-btn[data-v-ea4227b0]:active:not(:disabled){transform:scale(.95)}.send-btn[data-v-ea4227b0]:disabled{background:#d1d5db;cursor:not-allowed;opacity:.6}.footer-note[data-v-ea4227b0]{text-align:center;font-size:12px;color:#9ca3afcc;margin-top:6px}@media (max-width: 375px){.feature-buttons[data-v-ea4227b0]{gap:8px}.feature-btn[data-v-ea4227b0]{padding:6px 12px;font-size:13px}.welcome-message[data-v-ea4227b0]{font-size:16px}}.sidebar-user-wrap[data-v-ea4227b0]{display:flex;align-items:center;gap:6px;flex:1}.makeup-modal[data-v-ea4227b0]{background:#fff;border-radius:20px;padding:20px;width:90%;max-width:380px;max-height:80vh;overflow-y:auto;box-shadow:0 8px 32px #0000002e}.makeup-modal-header[data-v-ea4227b0]{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.makeup-modal-title[data-v-ea4227b0]{font-size:16px;font-weight:700;color:#1f2937}.makeup-modal-close-x[data-v-ea4227b0]{background:none;border:none;font-size:18px;color:#6b7280;cursor:pointer}.makeup-step[data-v-ea4227b0]{display:flex;flex-direction:column;gap:12px}.makeup-label[data-v-ea4227b0]{font-size:13px;font-weight:600;color:#374151}.makeup-input[data-v-ea4227b0],.makeup-textarea[data-v-ea4227b0],.makeup-select[data-v-ea4227b0]{width:100%;padding:10px 12px;border:1px solid #d1d5db;border-radius:10px;font-size:14px;box-sizing:border-box}.makeup-textarea[data-v-ea4227b0]{resize:none}.makeup-next-btn[data-v-ea4227b0]{padding:11px;border-radius:12px;border:none;background:linear-gradient(135deg,#f97316,#fb923c);color:#fff;font-size:14px;font-weight:700;cursor:pointer}.makeup-next-btn[data-v-ea4227b0]:disabled{opacity:.5;cursor:not-allowed}.makeup-back[data-v-ea4227b0]{font-size:13px;color:#6b7280;cursor:pointer}.makeup-course-item[data-v-ea4227b0]{padding:10px 12px;border:1.5px solid #e5e7eb;border-radius:10px;cursor:pointer}.makeup-course-item.selected[data-v-ea4227b0]{border-color:#f97316;background:#fff7ed}.makeup-course-name[data-v-ea4227b0]{font-size:14px;font-weight:600;color:#1f2937}.makeup-course-info[data-v-ea4227b0]{font-size:12px;color:#6b7280;margin-top:2px}.makeup-empty[data-v-ea4227b0]{text-align:center;color:#9ca3af;font-size:13px;padding:20px 0}.makeup-success[data-v-ea4227b0]{align-items:center;text-align:center;gap:10px}.makeup-success-icon[data-v-ea4227b0]{font-size:48px}.makeup-success-text[data-v-ea4227b0]{font-size:15px;font-weight:600;color:#16a34a}.makeup-history-btn[data-v-ea4227b0]{padding:9px;border-radius:12px;border:1px solid #f97316;background:#fff;color:#f97316;font-size:13px;cursor:pointer}.makeup-list[data-v-ea4227b0]{display:flex;flex-direction:column;gap:12px}.makeup-list-item[data-v-ea4227b0]{padding:12px;border:1px solid #e5e7eb;border-radius:12px}.makeup-list-top[data-v-ea4227b0]{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.makeup-list-course[data-v-ea4227b0]{font-size:14px;font-weight:600;color:#1f2937}.makeup-list-info[data-v-ea4227b0],.makeup-list-reason[data-v-ea4227b0],.makeup-list-time[data-v-ea4227b0],.makeup-list-comment[data-v-ea4227b0]{font-size:12px;color:#6b7280;margin-top:2px}.makeup-status-badge[data-v-ea4227b0]{font-size:11px;font-weight:600;padding:2px 8px;border-radius:8px}.status-pending[data-v-ea4227b0]{background:#fef3c7;color:#d97706}.status-approved[data-v-ea4227b0]{background:#dcfce7;color:#16a34a}.status-rejected[data-v-ea4227b0]{background:#fee2e2;color:#dc2626}.makeup-loading[data-v-ea4227b0]{text-align:center;padding:30px;color:#9ca3af}.makeup-required[data-v-ea4227b0]{color:#ef4444}.makeup-img-list[data-v-ea4227b0]{display:flex;flex-wrap:wrap;gap:8px}.makeup-img-thumb-wrap[data-v-ea4227b0]{position:relative;width:72px;height:72px}.makeup-img-thumb[data-v-ea4227b0]{width:72px;height:72px;object-fit:cover;border-radius:8px;cursor:pointer;border:1px solid #e5e7eb}.makeup-img-remove[data-v-ea4227b0]{position:absolute;top:-6px;right:-6px;width:18px;height:18px;border-radius:50%;background:#ef4444;color:#fff;border:none;font-size:12px;line-height:18px;text-align:center;cursor:pointer;padding:0}.makeup-img-add[data-v-ea4227b0]{width:72px;height:72px;border:2px dashed #d1d5db;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:11px;color:#9ca3af;cursor:pointer;flex-direction:column}.makeup-img-add.uploading[data-v-ea4227b0]{opacity:.6;cursor:default}.makeup-img-row[data-v-ea4227b0]{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}.makeup-img-thumb-sm[data-v-ea4227b0]{width:56px;height:56px;object-fit:cover;border-radius:6px;cursor:pointer;border:1px solid #e5e7eb}.img-preview-overlay[data-v-ea4227b0]{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000d9;z-index:9999;display:flex;align-items:center;justify-content:center}.img-preview-full[data-v-ea4227b0]{max-width:90vw;max-height:90vh;border-radius:8px;object-fit:contain}.history-modal[data-v-ea4227b0]{display:flex!important;flex-direction:column!important;max-height:80vh!important;overflow:hidden!important}.history-modal-header[data-v-ea4227b0]{display:flex;align-items:center;justify-content:space-between;padding:16px 16px 0;flex-shrink:0}.history-filter-bar[data-v-ea4227b0]{display:flex;gap:8px;align-items:center;padding:10px 16px;flex-shrink:0;border-bottom:1px solid #f3f4f6}.history-filter-input[data-v-ea4227b0]{flex:1;min-width:0;padding:7px 10px;border:1px solid #e5e7eb;border-radius:8px;font-size:13px;outline:none;background:#f9fafb}.history-filter-input[data-v-ea4227b0]:focus{border-color:#6366f1;background:#fff}.history-filter-clear[data-v-ea4227b0]{flex-shrink:0;padding:6px 10px;border-radius:8px;border:none;background:#f3f4f6;color:#6b7280;font-size:12px;cursor:pointer}.history-scroll-body[data-v-ea4227b0]{flex:1;overflow-y:auto;padding:10px 16px 16px}.history-list[data-v-ea4227b0]{display:flex;flex-direction:column;gap:8px}.history-item[data-v-ea4227b0]{padding:10px 12px;border-radius:12px;border-left:4px solid transparent}.history-ok[data-v-ea4227b0]{background:#f0fdf4;border-left-color:#22c55e}.history-fail[data-v-ea4227b0]{background:#fef2f2;border-left-color:#ef4444}.history-top[data-v-ea4227b0]{display:flex;align-items:center;gap:6px;margin-bottom:2px}.history-status-icon[data-v-ea4227b0]{font-size:15px}.history-course[data-v-ea4227b0]{font-size:13px;font-weight:600;color:#1f2937}.history-makeup-tag[data-v-ea4227b0]{display:inline-block;font-size:10px;padding:1px 6px;border-radius:6px;background:#fed7aa;color:#c2410c;font-weight:700;margin-left:4px}.history-detail[data-v-ea4227b0]{font-size:12px;color:#16a34a;padding-left:21px}.history-fail-reason[data-v-ea4227b0]{font-size:12px;color:#dc2626;padding-left:21px}.history-time[data-v-ea4227b0]{font-size:11px;color:#9ca3af;margin-top:2px;padding-left:21px}*{margin:0;padding:0;box-sizing:border-box}#app{width:100%;height:100vh;overflow:hidden}body{margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f5f5f5}#app{width:100%;height:100vh}
