.gantt-container[data-v-cab91a28]{display:flex;flex-direction:column;border:1px solid #e4e7ed;border-radius:8px;overflow:hidden}.gantt-header[data-v-cab91a28]{display:flex;background:#fafafa;border-bottom:1px solid #e4e7ed}.gantt-day-column[data-v-cab91a28]{flex:1;padding:12px 8px;text-align:center;border-right:1px solid #e4e7ed;&[data-v-cab91a28]:last-child{border-right:none}&.today[data-v-cab91a28]{background:#fff8f0;.day-date[data-v-cab91a28],.day-header[data-v-cab91a28]{color:#ff7a00;font-weight:600}}&.weekend[data-v-cab91a28]{background:#f9f9f9}}.day-header[data-v-cab91a28]{font-size:14px;font-weight:500;color:#333}.day-date[data-v-cab91a28]{font-size:12px;color:#999;margin-top:4px}.gantt-body[data-v-cab91a28]{display:flex;gap:0}.gantt-day-column-body[data-v-cab91a28]{flex:1;border-right:1px solid #f0f0f0;min-height:200px;&[data-v-cab91a28]:last-child{border-right:none}&.weekend[data-v-cab91a28]{background:#fafafa}}.day-booking-list[data-v-cab91a28]{padding:8px;display:flex;flex-direction:column;gap:6px}.booking-bar[data-v-cab91a28]{padding:8px;border-radius:6px;display:flex;align-items:center;gap:8px;&.booking-approved[data-v-cab91a28]{background:#f6ffed;border:1px solid #b7eb8f}&.booking-pending[data-v-cab91a28]{background:#fffbe6;border:1px solid #ffe58f}&.booking-completed[data-v-cab91a28]{background:#f0f5ff;border:1px solid #adc6ff}&.booking-canceled[data-v-cab91a28]{background:#fff1f0;border:1px solid #ffccc7}}.booking-time[data-v-cab91a28]{font-size:12px;color:#666;white-space:nowrap;flex-shrink:0}.booking-student[data-v-cab91a28]{font-size:13px;font-weight:600;color:#333;white-space:nowrap;flex-shrink:0}.booking-course[data-v-cab91a28]{flex:1;font-size:12px;color:#999;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.end-time-display[data-v-cab91a28]{font-size:14px;color:#303133;line-height:36px}.end-time-placeholder[data-v-cab91a28]{font-size:13px;color:#c0c4cc;line-height:36px}.empty-hint[data-v-cab91a28]{font-size:12px;color:#ccc;text-align:center;padding:30px 0}.legend[data-v-cab91a28]{display:flex;justify-content:flex-end;gap:20px;margin-top:16px;padding-top:16px;border-top:1px solid #f5f5f5}.legend-item[data-v-cab91a28]{display:flex;align-items:center;gap:6px;font-size:12px;color:#666}.legend-dot[data-v-cab91a28]{width:12px;height:12px;border-radius:2px;&.booking-approved[data-v-cab91a28]{background:#f6ffed;border:1px solid #b7eb8f}&.booking-pending[data-v-cab91a28]{background:#fffbe6;border:1px solid #ffe58f}&.booking-completed[data-v-cab91a28]{background:#f0f5ff;border:1px solid #adc6ff}&.booking-canceled[data-v-cab91a28]{background:#fff1f0;border:1px solid #ffccc7}}.booking-create-dialog[data-v-cab91a28] .el-dialog__body{padding:20px;max-height:60vh;overflow-y:auto}.dialog-body-scroll[data-v-cab91a28]{max-height:50vh;overflow-y:auto;padding-right:8px}.booking-create-dialog[data-v-cab91a28] .el-form-item{margin-bottom:16px}.booking-create-dialog[data-v-cab91a28] .el-date-editor,.booking-create-dialog[data-v-cab91a28] .el-input,.booking-create-dialog[data-v-cab91a28] .el-select{width:100%}.fixed-hours[data-v-cab91a28]{font-size:14px;color:#303133;font-weight:600}.form-tip[data-v-cab91a28]{margin-left:12px;font-size:13px;color:#999}.clickable[data-v-cab91a28]{cursor:pointer}.month-container[data-v-cab91a28]{border:1px solid #e4e7ed;border-radius:8px;overflow:hidden}.month-weekdays[data-v-cab91a28]{display:flex;background:#fafafa;border-bottom:1px solid #e4e7ed}.month-weekday[data-v-cab91a28]{flex:1;padding:10px 8px;text-align:center;font-size:13px;font-weight:500;color:#666}.month-grid[data-v-cab91a28]{display:grid;grid-template-columns:repeat(7,1fr)}.month-cell[data-v-cab91a28]{min-height:96px;border-right:1px solid #f0f0f0;border-bottom:1px solid #f0f0f0;padding:6px 8px;cursor:pointer;transition:background .2s;&[data-v-cab91a28]:nth-child(7n){border-right:none}&[data-v-cab91a28]:hover{background:#fff8f0}&.other-month[data-v-cab91a28]{background:#fafafa;.month-cell-date[data-v-cab91a28]{color:#ccc}}&.today[data-v-cab91a28]{background:#fff8f0;.month-cell-date[data-v-cab91a28]{color:#ff7a00;font-weight:700}}&.weekend[data-v-cab91a28]{background:#fafafa}}.month-cell-header[data-v-cab91a28]{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.month-cell-date[data-v-cab91a28]{font-size:14px;color:#333;font-weight:500}.month-cell-count[data-v-cab91a28]{font-size:11px;color:#ff7a00;background:#fff8f0;border-radius:8px;padding:1px 6px}.month-cell-bookings[data-v-cab91a28]{display:flex;flex-direction:column;gap:3px}.month-booking-item[data-v-cab91a28]{display:flex;align-items:center;gap:6px;padding:2px 6px;border-radius:4px;font-size:11px;overflow:hidden;&.booking-approved[data-v-cab91a28]{background:#f6ffed;color:#389e0d}&.booking-pending[data-v-cab91a28]{background:#fffbe6;color:#d48806}&.booking-completed[data-v-cab91a28]{background:#f0f5ff;color:#2f54eb}&.booking-canceled[data-v-cab91a28]{background:#fff1f0;color:#cf1322;text-decoration:line-through}}.month-booking-time[data-v-cab91a28]{flex-shrink:0}.month-booking-name[data-v-cab91a28]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.month-cell-more[data-v-cab91a28]{font-size:11px;color:#999;text-align:center;padding:2px 0}