.data-manage[data-v-4778c767]{font-size:.9rem}.section[data-v-4778c767]{margin-bottom:16px}.section h4[data-v-4778c767]{margin:0 0 8px;color:#555;font-size:.85rem}.btn-add[data-v-4778c767]{display:block;width:100%;padding:6px 10px;margin-bottom:8px;border:1px dashed #ccc;background:#fafafa;border-radius:6px;cursor:pointer;font-size:.85rem}.list[data-v-4778c767]{list-style:none;padding:0;margin:0}.list-item[data-v-4778c767]{display:flex;justify-content:space-between;align-items:center;padding:6px 8px;border-radius:4px;margin-bottom:4px;background:#f5f5f5}.actions[data-v-4778c767]{display:flex;gap:4px}.btn-sm[data-v-4778c767]{padding:2px 8px;font-size:.75rem;border:none;border-radius:4px;background:#e0e0e0;cursor:pointer}.btn-sm.danger[data-v-4778c767]{background:#ffcdd2;color:#c62828}.modal-mask[data-v-4778c767]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:1000}.modal[data-v-4778c767]{background:#fff;padding:20px;border-radius:12px;min-width:320px;max-width:90vw}.modal h3[data-v-4778c767]{margin:0 0 16px}.modal label[data-v-4778c767]{display:block;margin:10px 0 4px;font-size:.9rem;color:#555}.modal input[data-v-4778c767],.modal select[data-v-4778c767],.modal textarea[data-v-4778c767]{width:100%;padding:8px 10px;border:1px solid #ddd;border-radius:6px;font-size:.9rem}.check-group[data-v-4778c767]{display:flex;flex-wrap:wrap;gap:8px}.check-item[data-v-4778c767]{display:flex;align-items:center;gap:4px;margin:0;cursor:pointer}.modal-actions[data-v-4778c767]{margin-top:20px;display:flex;justify-content:flex-end;gap:10px}.modal .btn[data-v-4778c767]{padding:8px 16px;border:none;border-radius:8px;cursor:pointer}.modal .btn.primary[data-v-4778c767]{background:#e94560;color:#fff}.view-switch[data-v-209a7061]{padding:4px 0}.tab-group[data-v-209a7061]{display:flex;flex-direction:column;gap:4px}.tab-btn[data-v-209a7061]{display:flex;align-items:center;gap:8px;padding:10px 14px;border:none;background:none;border-radius:8px;cursor:pointer;font-size:.9rem;color:#555;transition:all .2s;text-align:left}.tab-btn[data-v-209a7061]:hover{background:#f0f0f0;color:#333}.tab-btn.active[data-v-209a7061]{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;font-weight:600;box-shadow:0 2px 8px #667eea4d}.tab-icon[data-v-209a7061]{font-size:1rem;flex-shrink:0}.tab-label[data-v-209a7061]{flex:1}.schedule-wrap[data-v-e5fafbfa]{background:#fff;border-radius:12px;box-shadow:0 2px 12px #0000000f;overflow:hidden}.grid-scroll[data-v-e5fafbfa]{overflow:auto;max-height:calc(100vh - 140px)}.schedule-table[data-v-e5fafbfa]{width:100%;border-collapse:collapse;min-width:700px}.schedule-table th[data-v-e5fafbfa],.schedule-table td[data-v-e5fafbfa]{border:1px solid #e8e8e8;padding:8px 10px;text-align:center;font-size:.85rem}.schedule-table thead[data-v-e5fafbfa]{position:sticky;top:0;z-index:10}.schedule-table th[data-v-e5fafbfa]{background:#f8f9fa;font-weight:600;color:#333;padding:12px 10px}.col-time[data-v-e5fafbfa]{width:120px}.col-class[data-v-e5fafbfa]{width:70px}.cell-class[data-v-e5fafbfa]{vertical-align:middle;font-weight:600;color:#1a1a2e;background:#fafbfc}.cell-time[data-v-e5fafbfa]{background:#fafbfc;color:#666;font-size:.8rem;white-space:nowrap}.cell-slot[data-v-e5fafbfa]{min-width:110px;vertical-align:middle;transition:background .15s;position:relative}.cell-slot[data-v-e5fafbfa]:hover{background:#f8f9ff}.cell-slot.drop-over[data-v-e5fafbfa]{background:#e3f2fd;outline:2px dashed #2196f3;outline-offset:-2px}.cell-slot.conflict[data-v-e5fafbfa]{background:#fff5f5}.cell-slot.conflict[data-v-e5fafbfa]:hover{background:#ffebee}.cell-slot.locked[data-v-e5fafbfa]{background:#fafafa}.slot-content[data-v-e5fafbfa]{padding:6px 8px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-radius:6px;font-size:.82rem;cursor:grab;display:flex;align-items:center;gap:4px;transition:box-shadow .15s}.slot-content[data-v-e5fafbfa]:hover{box-shadow:0 2px 8px #667eea59}.slot-content[data-v-e5fafbfa]:active{cursor:grabbing;opacity:.85}.label[data-v-e5fafbfa]{flex:1;min-width:0;text-align:left}.cell-actions[data-v-e5fafbfa]{display:flex;align-items:center;gap:2px;flex-shrink:0}.action-btn[data-v-e5fafbfa]{font-size:.72rem;cursor:pointer;padding:1px 3px;border-radius:3px;opacity:.7;transition:opacity .15s}.action-btn[data-v-e5fafbfa]:hover{opacity:1}.remove-btn[data-v-e5fafbfa]:hover{background:#fff3}.slot-empty[data-v-e5fafbfa]{min-height:34px;display:flex;align-items:center;justify-content:center}.empty-hint[data-v-e5fafbfa]{color:transparent;font-size:.75rem;transition:color .15s}.cell-slot:hover .empty-hint[data-v-e5fafbfa]{color:#bbb}.teacher-view[data-v-462cc32e]{background:#fff;border-radius:12px;box-shadow:0 2px 12px #0000000f;overflow:hidden}.toolbar[data-v-462cc32e]{padding:12px 16px;background:#f8f9fa;border-bottom:1px solid #e0e0e0;display:flex;align-items:center;gap:10px}.select[data-v-462cc32e]{padding:8px 12px;border:1px solid #ddd;border-radius:8px;font-size:.9rem;min-width:120px}.grid-scroll[data-v-462cc32e]{overflow:auto}.schedule-table[data-v-462cc32e]{width:100%;border-collapse:collapse}.schedule-table th[data-v-462cc32e],.schedule-table td[data-v-462cc32e]{border:1px solid #e0e0e0;padding:10px 12px;text-align:center;font-size:.9rem}.cell-time[data-v-462cc32e]{background:#fafafa;width:120px}.label[data-v-462cc32e]{display:inline-block;padding:4px 8px;background:#e8eaf0;border-radius:4px;font-size:.85rem}.empty[data-v-462cc32e]{color:#bbb}.hint[data-v-462cc32e]{padding:40px;text-align:center;color:#888}.school-view[data-v-6fbb52d8]{background:#fff;border-radius:12px;box-shadow:0 2px 12px #0000000f;padding:20px}.school-header[data-v-6fbb52d8]{margin-bottom:16px}.hint[data-v-6fbb52d8]{margin:0;color:#888;font-size:.85rem}.class-cards[data-v-6fbb52d8]{display:flex;flex-wrap:wrap;gap:16px}.class-card[data-v-6fbb52d8]{border:1px solid #e8e8e8;border-radius:10px;padding:14px;min-width:340px;flex:1;cursor:pointer;transition:all .2s;background:#fafbfc}.class-card[data-v-6fbb52d8]:hover{box-shadow:0 4px 16px #00000014;border-color:#667eea;background:#fff}.card-header[data-v-6fbb52d8]{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.card-header h4[data-v-6fbb52d8]{margin:0;font-size:1rem;color:#1a1a2e}.card-stat[data-v-6fbb52d8]{font-size:.75rem;color:#999;background:#f0f0f0;padding:2px 8px;border-radius:10px}.mini-table[data-v-6fbb52d8]{width:100%;border-collapse:collapse;font-size:.72rem}.mini-table th[data-v-6fbb52d8],.mini-table td[data-v-6fbb52d8]{border:1px solid #eee;padding:3px 5px;text-align:center}.mini-table th[data-v-6fbb52d8]{background:#f5f5f5;font-weight:600;color:#666}.mini-time[data-v-6fbb52d8]{background:#f8f8f8;max-width:60px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#888;font-size:.68rem}.mini-cell[data-v-6fbb52d8]{color:#999}.mini-cell.filled[data-v-6fbb52d8]{color:#333;background:#f0f4ff}.mini-cell.conflict[data-v-6fbb52d8]{background:#ffebee;color:#c62828;font-weight:600}.course-pool[data-v-2089d440]{display:flex;flex-wrap:wrap;gap:8px}.course-card[data-v-2089d440]{padding:8px 12px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-radius:8px;font-size:.85rem;cursor:grab;-webkit-user-select:none;user-select:none;display:flex;align-items:center;gap:6px;transition:opacity .2s,transform .15s}.course-card[data-v-2089d440]:hover{transform:translateY(-1px);box-shadow:0 3px 8px #667eea4d}.course-card[data-v-2089d440]:active{cursor:grabbing;transform:scale(.97)}.course-card.fixed[data-v-2089d440]{background:linear-gradient(135deg,#f093fb,#f5576c)}.course-card.full[data-v-2089d440]{opacity:.5}.card-count[data-v-2089d440]{font-size:.75rem;background:#ffffff40;padding:1px 6px;border-radius:10px}.card-count.over[data-v-2089d440]{background:#ff5252}.lock-icon[data-v-2089d440]{font-size:.75rem}.empty[data-v-2089d440]{color:#888;font-size:.85rem;margin:0}.conflict-list[data-v-ce63ab86]{max-height:240px;overflow-y:auto;font-size:.82rem}.none[data-v-ce63ab86]{color:#999;display:flex;align-items:center;gap:6px;padding:8px 0}.none-icon[data-v-ce63ab86]{font-size:.9rem}.list[data-v-ce63ab86]{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px}.item[data-v-ce63ab86]{padding:8px 10px;background:#fff5f5;border-left:3px solid #e94560;border-radius:4px;display:flex;align-items:flex-start;gap:8px}.item.frequency[data-v-ce63ab86]{border-left-color:#ff9800;background:#fff8e1}.type-tag[data-v-ce63ab86]{font-size:.7rem;padding:1px 6px;border-radius:3px;background:#e94560;color:#fff;flex-shrink:0;line-height:1.4}.item.frequency .type-tag[data-v-ce63ab86]{background:#ff9800}.msg[data-v-ce63ab86]{color:#555;line-height:1.4}.modal-mask[data-v-990688af]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:1000}.modal[data-v-990688af]{background:#fff;padding:24px;border-radius:12px;min-width:360px}.modal h3[data-v-990688af]{margin:0 0 16px}.options[data-v-990688af]{display:flex;flex-direction:column;gap:10px;margin-bottom:16px}.option[data-v-990688af]{display:flex;align-items:center;gap:8px;cursor:pointer}.select-row[data-v-990688af]{margin-bottom:16px;display:flex;align-items:center;gap:10px}.select-row select[data-v-990688af]{padding:8px 12px;border:1px solid #ddd;border-radius:8px;min-width:140px}.modal-actions[data-v-990688af]{display:flex;justify-content:flex-end;gap:10px}.btn[data-v-990688af]{padding:8px 16px;border:none;border-radius:8px;cursor:pointer}.btn.primary[data-v-990688af]{background:#e94560;color:#fff}.modal-mask[data-v-9f31fc82]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:1000}.modal[data-v-9f31fc82]{background:#fff;padding:24px;border-radius:12px;min-width:400px}.modal h3[data-v-9f31fc82]{margin:0 0 12px}.hint[data-v-9f31fc82]{font-size:.85rem;color:#666;margin:0 0 16px}.file-input[data-v-9f31fc82]{display:block;margin-bottom:16px}.result[data-v-9f31fc82]{padding:12px;background:#e8f5e9;border-radius:8px;font-size:.9rem;margin-bottom:16px}.result.error[data-v-9f31fc82]{background:#ffebee;color:#c62828}.modal-actions[data-v-9f31fc82]{display:flex;justify-content:flex-end;gap:10px}.btn[data-v-9f31fc82]{padding:8px 16px;border:none;border-radius:8px;cursor:pointer}.btn.primary[data-v-9f31fc82]{background:#e94560;color:#fff}.btn.primary[data-v-9f31fc82]:disabled{opacity:.6;cursor:not-allowed}.toast[data-v-1a8d34e4]{position:fixed;bottom:24px;left:50%;transform:translate(-50%);padding:12px 24px;background:#1a1a2e;color:#fff;border-radius:8px;font-size:.9rem;box-shadow:0 4px 12px #0003;z-index:2000;cursor:pointer}.toast-enter-active[data-v-1a8d34e4],.toast-leave-active[data-v-1a8d34e4]{transition:opacity .25s,transform .25s}.toast-enter-from[data-v-1a8d34e4],.toast-leave-to[data-v-1a8d34e4]{opacity:0;transform:translate(-50%) translateY(10px)}*{box-sizing:border-box}body{margin:0;font-family:Noto Sans SC,-apple-system,BlinkMacSystemFont,sans-serif;background:#f0f2f5;color:#1a1a2e}.app{min-height:100vh;display:flex;flex-direction:column}.header{background:linear-gradient(135deg,#1a1a2e,#16213e);color:#eee;padding:12px 24px;display:flex;align-items:center;justify-content:space-between;box-shadow:0 2px 8px #00000026;position:sticky;top:0;z-index:100}.logo{margin:0;font-size:1.2rem;font-weight:600;letter-spacing:.5px}.header-actions{display:flex;align-items:center;gap:10px}.user-hint{font-size:.78rem;opacity:.7;margin-left:4px}.btn{padding:7px 14px;border:none;border-radius:8px;cursor:pointer;font-size:.85rem;font-weight:500;transition:all .2s}.btn-primary{background:#e94560;color:#fff}.btn-primary:hover{background:#d63b55;box-shadow:0 2px 8px #e945604d}.btn-secondary{background:#ffffff1f;color:#eee;border:1px solid rgba(255,255,255,.15)}.btn-secondary:hover{background:#ffffff38}.main-layout{flex:1;display:flex;overflow:hidden}.sidebar{width:200px;background:#fff;border-right:1px solid #e8e8e8;display:flex;flex-direction:column;overflow:hidden}.sidebar-section{padding:12px}.sidebar-data{flex:1;overflow-y:auto}.sidebar-divider{height:1px;background:#e8e8e8;margin:0 12px}.content{flex:1;overflow:auto;padding:16px;background:#f5f6f8}.right-panel{width:260px;background:#fff;border-left:1px solid #e8e8e8;display:flex;flex-direction:column;overflow:hidden}.right-section{padding:14px;border-bottom:1px solid #f0f0f0;overflow-y:auto}.right-section:last-child{flex:1}.section-title{margin:0 0 12px;font-size:.9rem;color:#333;display:flex;align-items:center;gap:6px}.section-icon{font-size:.95rem}.badge{background:#e94560;color:#fff;padding:1px 8px;border-radius:10px;font-size:.75rem;font-weight:600;margin-left:auto}
