.container {
    padding: 20px;
    background: #fff;
    height: 100vh;
}

.header {
    display: flex;
    align-items: center;
    margin-bottom: 20px;
    
    .titleBar {
        width: 3px;
        height: 16px;
        background: #2E4CD4;
        margin-right: 12px;
    }
    
    .title {
        margin: 0;
        font-size: 14px;
        font-weight: 500;
        color: #333;
    }
}

.toolbar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 20px;
    padding: 0 10px;
    
    .toolbarLeft {
        flex: 1;
    }
    
    .toolbarRight {
        display: flex;
        align-items: center;
        gap: 15px;
    }
}

// 图例样式
.legend {
    display: flex;
    gap: 20px;
    
    .legendItem {
        display: flex;
        align-items: center;
        font-size: 13px;
        color: #666;
        gap: 6px;
    }
    
    .legendDot {
        width: 12px;
        height: 12px;
        border-radius: 2px;
        display: inline-block;
        
        &.onduty {
            background: #D4F4DD;
        }
        
        &.leave {
            background: #FFE7BA;
        }
        
        &.vacation {
            background: #FFD6E0;
        }
        
        &.none {
            background: #E8E8E8;
        }
    }
}

// 日期范围和周导航
.dateRange {
    font-size: 13px;
    color: #666;
}

.weekNav {
    display: flex;
    gap: 0;
    border: 1px solid #d9d9d9;
    border-radius: 2px;
    overflow: hidden;
    
    .navButton {
        border: none;
        border-radius: 0;
        background: #fff;
        color: #666;
        height: 28px;
        font-size: 13px;
        border-right: 1px solid #d9d9d9;
        
        &:last-child {
            border-right: none;
        }
        
        &:hover {
            background: #f5f5f5;
            color: #333;
        }
    }
    
    .navButtonActive {
        background: #2E4CD4 !important;
        color: #fff !important;
        border: none;
        
        &:hover {
            background: #1e3bb8 !important;
        }
    }
}

// 表格样式
.scheduleTable {
    width: 100%;
    overflow-x: auto;
    border: 1px solid #E5E5E5;
    border-radius: 4px;
}

.table {
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed;
    
    th, td {
        border: 1px solid #E5E5E5;
        text-align: center;
        vertical-align: middle;
    }
    
    // 表头样式
    thead {
        background: #FAFAFA;
        
        th {
            padding: 12px 8px;
            font-weight: 500;
            color: #333;
            font-size: 13px;
        }
    }
    
    tbody {
        td {
            padding: 0;
            height: 120px;
        }
    }
}

// 第一列（班次列）样式
.shiftHeader {
    width: 140px;
    background: #FAFAFA;
    color: #666;
}

.shiftCell {
    background: #FAFAFA;
    padding: 15px 10px !important;
    
    .shiftName {
        font-size: 14px;
        font-weight: 500;
        color: #333;
        margin-bottom: 5px;
    }
    
    .shiftTime {
        font-size: 12px;
        color: #999;
    }
}

// 日期表头
.dayHeader {
    width: calc((100% - 140px) / 7);
    
    .dayName {
        font-size: 13px;
        color: #333;
        margin-bottom: 4px;
    }
    
    .dayDate {
        font-size: 12px;
        color: #999;
        font-weight: normal;
    }
}

// 排班单元格
.scheduleCell {
    position: relative;
    padding: 0 !important;
    
    // 不同状态的背景色
    &.bg_onduty {
        background: #D4F4DD;
    }
    
    &.bg_leave {
        background: #FFE7BA;
    }
    
    &.bg_vacation {
        background: #FFD6E0;
    }
    
    &.bg_none {
        background: #F5F5F5;
    }
    
    &.bg_mixed {
        background: linear-gradient(135deg, #D4F4DD 50%, #FFD6E0 50%);
    }
}

.emptyCell {
    width: 100%;
    height: 120px;
}

.cellContent {
    width: 100%;
    height: 120px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 5px;
    padding: 10px;
}

.personItem {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 3px;
    
    .personName {
        font-size: 13px;
        color: #333;
        font-weight: 500;
    }
    
    .statusTag {
        font-size: 11px;
        padding: 2px 6px;
        border-radius: 2px;
        
        &.onduty {
            color: #52C41A;
        }
        
        &.leave {
            color: #FA8C16;
        }
        
        &.vacation {
            color: #F5222D;
        }
        
        &.none {
            color: transparent;
        }
    }
}

// 响应式
@media screen and (max-width: 1400px) {
    .table {
        font-size: 12px;
    }
    
    .personName {
        font-size: 12px !important;
    }
    
    .statusTag {
        font-size: 10px !important;
    }
}
